<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE FlexibleContexts #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE LambdaCase #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-5"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- Module      :  Distribution.Simple</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- Copyright   :  Isaac Jones 2003-2005</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- License     :  BSD3</span><span>
</span><span id="line-10"></span><span class="hs-comment">--</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Maintainer  :  cabal-devel@haskell.org</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-13"></span><span class="hs-comment">--</span><span>
</span><span id="line-14"></span><span class="hs-comment">-- This is the command line front end to the Simple build system. When given</span><span>
</span><span id="line-15"></span><span class="hs-comment">-- the parsed command-line args and package information, is able to perform</span><span>
</span><span id="line-16"></span><span class="hs-comment">-- basic commands like configure, build, install, register, etc.</span><span>
</span><span id="line-17"></span><span class="hs-comment">--</span><span>
</span><span id="line-18"></span><span class="hs-comment">-- This module exports the main functions that Setup.hs scripts use. It</span><span>
</span><span id="line-19"></span><span class="hs-comment">-- re-exports the 'UserHooks' type, the standard entry points like</span><span>
</span><span id="line-20"></span><span class="hs-comment">-- 'defaultMain' and 'defaultMainWithHooks' and the predefined sets of</span><span>
</span><span id="line-21"></span><span class="hs-comment">-- 'UserHooks' that custom @Setup.hs@ scripts can extend to add their own</span><span>
</span><span id="line-22"></span><span class="hs-comment">-- behaviour.</span><span>
</span><span id="line-23"></span><span class="hs-comment">--</span><span>
</span><span id="line-24"></span><span class="hs-comment">-- This module isn't called \&quot;Simple\&quot; because it's simple.  Far from</span><span>
</span><span id="line-25"></span><span class="hs-comment">-- it.  It's called \&quot;Simple\&quot; because it does complicated things to</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- simple software.</span><span>
</span><span id="line-27"></span><span class="hs-comment">--</span><span>
</span><span id="line-28"></span><span class="hs-comment">-- The original idea was that there could be different build systems that all</span><span>
</span><span id="line-29"></span><span class="hs-comment">-- presented the same compatible command line interfaces. There is still a</span><span>
</span><span id="line-30"></span><span class="hs-comment">-- &quot;Distribution.Make&quot; system but in practice no packages use it.</span><span>
</span><span id="line-31"></span><span>
</span><span id="line-32"></span><span class="hs-comment">{-
Work around this warning:
libraries/Cabal/Distribution/Simple.hs:78:0:
    Warning: In the use of `runTests'
             (imported from Distribution.Simple.UserHooks):
             Deprecated: &quot;Please use the new testing interface instead!&quot;
-}</span><span>
</span><span id="line-39"></span><span class="hs-pragma">{-# OPTIONS_GHC -fno-warn-deprecations #-}</span><span>
</span><span id="line-40"></span><span>
</span><span id="line-41"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Simple</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-42"></span><span>        </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="Distribution.Package.html"><span class="hs-identifier">Distribution.Package</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-43"></span><span>        </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="Distribution.Version.html"><span class="hs-identifier">Distribution.Version</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-44"></span><span>        </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="Distribution.License.html"><span class="hs-identifier">Distribution.License</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-45"></span><span>        </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html"><span class="hs-identifier">Distribution.Simple.Compiler</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-46"></span><span>        </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="Language.Haskell.Extension.html"><span class="hs-identifier">Language.Haskell.Extension</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Simple interface</span></span><span>
</span><span id="line-48"></span><span>        </span><span class="annot"><a href="Distribution.Simple.html#defaultMain"><span class="hs-identifier">defaultMain</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Simple.html#defaultMainNoRead"><span class="hs-identifier">defaultMainNoRead</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Simple.html#defaultMainArgs"><span class="hs-identifier">defaultMainArgs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Customization</span></span><span>
</span><span id="line-50"></span><span>        </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier">UserHooks</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier">Args</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-51"></span><span>        </span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooks"><span class="hs-identifier">defaultMainWithHooks</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooksArgs"><span class="hs-identifier">defaultMainWithHooksArgs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-52"></span><span>        </span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooksNoRead"><span class="hs-identifier">defaultMainWithHooksNoRead</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooksNoReadArgs"><span class="hs-identifier">defaultMainWithHooksNoReadArgs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-53"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Standard sets of hooks</span></span><span>
</span><span id="line-54"></span><span>        </span><span class="annot"><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier">simpleUserHooks</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-55"></span><span>        </span><span class="annot"><a href="Distribution.Simple.html#autoconfUserHooks"><span class="hs-identifier">autoconfUserHooks</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-56"></span><span>        </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#emptyUserHooks"><span class="hs-identifier">emptyUserHooks</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-57"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.html#"><span class="hs-identifier">Control.Exception</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Exception.Base.html#try"><span class="hs-identifier">try</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-62"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span class="hs-comment">-- local</span><span>
</span><span id="line-65"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Compiler.html"><span class="hs-identifier">Distribution.Simple.Compiler</span></a></span><span>
</span><span id="line-66"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html"><span class="hs-identifier">Distribution.Simple.UserHooks</span></a></span><span>
</span><span id="line-67"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Package.html"><span class="hs-identifier">Distribution.Package</span></a></span><span>
</span><span id="line-68"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.PackageDescription.html"><span class="hs-identifier">Distribution.PackageDescription</span></a></span><span>
</span><span id="line-69"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.PackageDescription.Configuration.html"><span class="hs-identifier">Distribution.PackageDescription.Configuration</span></a></span><span>
</span><span id="line-70"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Program.html"><span class="hs-identifier">Distribution.Simple.Program</span></a></span><span>
</span><span id="line-71"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Program.Db.html"><span class="hs-identifier">Distribution.Simple.Program.Db</span></a></span><span>
</span><span id="line-72"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.PreProcess.html"><span class="hs-identifier">Distribution.Simple.PreProcess</span></a></span><span>
</span><span id="line-73"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html"><span class="hs-identifier">Distribution.Simple.Setup</span></a></span><span>
</span><span id="line-74"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Command.html"><span class="hs-identifier">Distribution.Simple.Command</span></a></span><span>
</span><span id="line-75"></span><span>
</span><span id="line-76"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Build.html"><span class="hs-identifier">Distribution.Simple.Build</span></a></span><span>
</span><span id="line-77"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.SrcDist.html"><span class="hs-identifier">Distribution.Simple.SrcDist</span></a></span><span>
</span><span id="line-78"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Register.html"><span class="hs-identifier">Distribution.Simple.Register</span></a></span><span>
</span><span id="line-79"></span><span>
</span><span id="line-80"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Configure.html"><span class="hs-identifier">Distribution.Simple.Configure</span></a></span><span>
</span><span id="line-81"></span><span>
</span><span id="line-82"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.LocalBuildInfo.html"><span class="hs-identifier">Distribution.Simple.LocalBuildInfo</span></a></span><span>
</span><span id="line-83"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Bench.html"><span class="hs-identifier">Distribution.Simple.Bench</span></a></span><span>
</span><span id="line-84"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.BuildPaths.html"><span class="hs-identifier">Distribution.Simple.BuildPaths</span></a></span><span>
</span><span id="line-85"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Test.html"><span class="hs-identifier">Distribution.Simple.Test</span></a></span><span>
</span><span id="line-86"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Install.html"><span class="hs-identifier">Distribution.Simple.Install</span></a></span><span>
</span><span id="line-87"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Haddock.html"><span class="hs-identifier">Distribution.Simple.Haddock</span></a></span><span>
</span><span id="line-88"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Doctest.html"><span class="hs-identifier">Distribution.Simple.Doctest</span></a></span><span>
</span><span id="line-89"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Utils.html"><span class="hs-identifier">Distribution.Simple.Utils</span></a></span><span>
</span><span id="line-90"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Utils.NubList.html"><span class="hs-identifier">Distribution.Utils.NubList</span></a></span><span>
</span><span id="line-91"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html"><span class="hs-identifier">Distribution.Verbosity</span></a></span><span>
</span><span id="line-92"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Language.Haskell.Extension.html"><span class="hs-identifier">Language.Haskell.Extension</span></a></span><span>
</span><span id="line-93"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Version.html"><span class="hs-identifier">Distribution.Version</span></a></span><span>
</span><span id="line-94"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.License.html"><span class="hs-identifier">Distribution.License</span></a></span><span>
</span><span id="line-95"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Pretty.html"><span class="hs-identifier">Distribution.Pretty</span></a></span><span>
</span><span id="line-96"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.System.html"><span class="hs-identifier">Distribution.System</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.System.html#buildPlatform"><span class="hs-identifier">buildPlatform</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span class="hs-comment">-- Base</span><span>
</span><span id="line-99"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#"><span class="hs-identifier">System.Environment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Environment.html#getArgs"><span class="hs-identifier">getArgs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#getProgName"><span class="hs-identifier">getProgName</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../directory/src/System.Directory.html#"><span class="hs-identifier">System.Directory</span></a></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="../../directory/src/System.Directory.html#removeFile"><span class="hs-identifier">removeFile</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../directory/src/System.Directory.html#doesFileExist"><span class="hs-identifier">doesFileExist</span></a></span><span>
</span><span id="line-101"></span><span>                          </span><span class="hs-special">,</span><span class="annot"><a href="../../directory/src/System.Directory.html#doesDirectoryExist"><span class="hs-identifier">doesDirectoryExist</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../directory/src/System.Directory.html#removeDirectoryRecursive"><span class="hs-identifier">removeDirectoryRecursive</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-102"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.html#"><span class="hs-identifier">System.FilePath</span></a></span><span>    </span><span class="hs-special">(</span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#searchPathSeparator"><span class="hs-identifier">searchPathSeparator</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#takeDirectory"><span class="hs-identifier">takeDirectory</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#%3C%2F%3E"><span class="hs-operator">(&lt;/&gt;)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-103"></span><span>                           </span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#splitDirectories"><span class="hs-identifier">splitDirectories</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#dropDrive"><span class="hs-identifier">dropDrive</span></a></span><span class="hs-special">)</span><span class="hs-cpp">
#ifdef mingw32_HOST_OS
</span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.html#"><span class="hs-identifier">System.FilePath</span></a></span><span>    </span><span class="hs-special">(</span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#normalise"><span class="hs-identifier">normalise</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.Windows.html#splitDrive"><span class="hs-identifier">splitDrive</span></a></span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.ResponseFile.html"><span class="hs-identifier">Distribution.Compat.ResponseFile</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.ResponseFile.html#expandResponse"><span class="hs-identifier">expandResponse</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Directory.html"><span class="hs-identifier">Distribution.Compat.Directory</span></a></span><span>        </span><span class="hs-special">(</span><span class="annot"><a href="../../directory/src/System.Directory.html#makeAbsolute"><span class="hs-identifier">makeAbsolute</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-109"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Environment.html"><span class="hs-identifier">Distribution.Compat.Environment</span></a></span><span>      </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Environment.html#getEnvironment"><span class="hs-identifier">getEnvironment</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-110"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.GetShortPathName.html"><span class="hs-identifier">Distribution.Compat.GetShortPathName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.GetShortPathName.html#getShortPathName"><span class="hs-identifier">getShortPathName</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-111"></span><span>
</span><span id="line-112"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span>       </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.OldList.html#unionBy"><span class="hs-identifier">unionBy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.OldList.html#%5C%5C"><span class="hs-operator">(\\)</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-113"></span><span>
</span><span id="line-114"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.PackageDescription.Parsec.html"><span class="hs-identifier">Distribution.PackageDescription.Parsec</span></a></span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span class="hs-comment">-- | A simple implementation of @main@ for a Cabal setup script.</span><span>
</span><span id="line-117"></span><span class="hs-comment">-- It reads the package description file using IO, and performs the</span><span>
</span><span id="line-118"></span><span class="hs-comment">-- action specified on the command line.</span><span>
</span><span id="line-119"></span><span class="annot"><a href="Distribution.Simple.html#defaultMain"><span class="hs-identifier hs-type">defaultMain</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-120"></span><span id="defaultMain"><span class="annot"><span class="annottext">defaultMain :: IO ()
</span><a href="Distribution.Simple.html#defaultMain"><span class="hs-identifier hs-var hs-var">defaultMain</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO [String]
</span><a href="../../base/src/System.Environment.html#getArgs"><span class="hs-identifier hs-var">getArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IO [String] -&gt; ([String] -&gt; IO ()) -&gt; IO ()
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var">defaultMainHelper</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-var">simpleUserHooks</span></a></span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span class="hs-comment">-- | A version of 'defaultMain' that is passed the command line</span><span>
</span><span id="line-123"></span><span class="hs-comment">-- arguments, rather than getting them from the environment.</span><span>
</span><span id="line-124"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainArgs"><span class="hs-identifier hs-type">defaultMainArgs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-125"></span><span id="defaultMainArgs"><span class="annot"><span class="annottext">defaultMainArgs :: [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainArgs"><span class="hs-identifier hs-var hs-var">defaultMainArgs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var">defaultMainHelper</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-var">simpleUserHooks</span></a></span><span>
</span><span id="line-126"></span><span>
</span><span id="line-127"></span><span class="hs-comment">-- | A customizable version of 'defaultMain'.</span><span>
</span><span id="line-128"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooks"><span class="hs-identifier hs-type">defaultMainWithHooks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-129"></span><span id="defaultMainWithHooks"><span class="annot"><span class="annottext">defaultMainWithHooks :: UserHooks -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainWithHooks"><span class="hs-identifier hs-var hs-var">defaultMainWithHooks</span></a></span></span><span> </span><span id="local-6989586621679733175"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733175"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO [String]
</span><a href="../../base/src/System.Environment.html#getArgs"><span class="hs-identifier hs-var">getArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IO [String] -&gt; ([String] -&gt; IO ()) -&gt; IO ()
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var">defaultMainHelper</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733175"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span class="hs-comment">-- | A customizable version of 'defaultMain' that also takes the command</span><span>
</span><span id="line-132"></span><span class="hs-comment">-- line arguments.</span><span>
</span><span id="line-133"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooksArgs"><span class="hs-identifier hs-type">defaultMainWithHooksArgs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-134"></span><span id="defaultMainWithHooksArgs"><span class="annot"><span class="annottext">defaultMainWithHooksArgs :: UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainWithHooksArgs"><span class="hs-identifier hs-var hs-var">defaultMainWithHooksArgs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var">defaultMainHelper</span></a></span><span>
</span><span id="line-135"></span><span>
</span><span id="line-136"></span><span class="hs-comment">-- | Like 'defaultMain', but accepts the package description as input</span><span>
</span><span id="line-137"></span><span class="hs-comment">-- rather than using IO to read it.</span><span>
</span><span id="line-138"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainNoRead"><span class="hs-identifier hs-type">defaultMainNoRead</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.GenericPackageDescription.html#GenericPackageDescription"><span class="hs-identifier hs-type">GenericPackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-139"></span><span id="defaultMainNoRead"><span class="annot"><span class="annottext">defaultMainNoRead :: GenericPackageDescription -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainNoRead"><span class="hs-identifier hs-var hs-var">defaultMainNoRead</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; GenericPackageDescription -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainWithHooksNoRead"><span class="hs-identifier hs-var">defaultMainWithHooksNoRead</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-var">simpleUserHooks</span></a></span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span><span class="hs-comment">-- | A customizable version of 'defaultMainNoRead'.</span><span>
</span><span id="line-142"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooksNoRead"><span class="hs-identifier hs-type">defaultMainWithHooksNoRead</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.GenericPackageDescription.html#GenericPackageDescription"><span class="hs-identifier hs-type">GenericPackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-143"></span><span id="defaultMainWithHooksNoRead"><span class="annot"><span class="annottext">defaultMainWithHooksNoRead :: UserHooks -&gt; GenericPackageDescription -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainWithHooksNoRead"><span class="hs-identifier hs-var hs-var">defaultMainWithHooksNoRead</span></a></span></span><span> </span><span id="local-6989586621679733174"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733174"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679733173"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733173"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-144"></span><span>  </span><span class="annot"><span class="annottext">IO [String]
</span><a href="../../base/src/System.Environment.html#getArgs"><span class="hs-identifier hs-var">getArgs</span></a></span><span> </span><span class="annot"><span class="annottext">IO [String] -&gt; ([String] -&gt; IO ()) -&gt; IO ()
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span>
</span><span id="line-145"></span><span>  </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var">defaultMainHelper</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733174"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">readDesc :: IO (Maybe GenericPackageDescription)
</span><a href="Distribution.Simple.UserHooks.html#readDesc"><span class="hs-identifier hs-var">readDesc</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe GenericPackageDescription
-&gt; IO (Maybe GenericPackageDescription)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenericPackageDescription -&gt; Maybe GenericPackageDescription
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733173"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-146"></span><span>
</span><span id="line-147"></span><span class="hs-comment">-- | A customizable version of 'defaultMainNoRead' that also takes the</span><span>
</span><span id="line-148"></span><span class="hs-comment">-- command line arguments.</span><span>
</span><span id="line-149"></span><span class="hs-comment">--</span><span>
</span><span id="line-150"></span><span class="hs-comment">-- @since 2.2.0.0</span><span>
</span><span id="line-151"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainWithHooksNoReadArgs"><span class="hs-identifier hs-type">defaultMainWithHooksNoReadArgs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.GenericPackageDescription.html#GenericPackageDescription"><span class="hs-identifier hs-type">GenericPackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-152"></span><span id="defaultMainWithHooksNoReadArgs"><span class="annot"><span class="annottext">defaultMainWithHooksNoReadArgs :: UserHooks -&gt; GenericPackageDescription -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainWithHooksNoReadArgs"><span class="hs-identifier hs-var hs-var">defaultMainWithHooksNoReadArgs</span></a></span></span><span> </span><span id="local-6989586621679733171"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733171"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679733170"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733170"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-153"></span><span>  </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var">defaultMainHelper</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733171"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">readDesc :: IO (Maybe GenericPackageDescription)
</span><a href="Distribution.Simple.UserHooks.html#readDesc"><span class="hs-identifier hs-var">readDesc</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe GenericPackageDescription
-&gt; IO (Maybe GenericPackageDescription)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenericPackageDescription -&gt; Maybe GenericPackageDescription
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733170"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span class="annot"><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-type">defaultMainHelper</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span id="defaultMainHelper"><span class="annot"><span class="annottext">defaultMainHelper :: UserHooks -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultMainHelper"><span class="hs-identifier hs-var hs-var">defaultMainHelper</span></a></span></span><span> </span><span id="local-6989586621679733169"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679733168"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733168"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO () -&gt; IO ()
forall a. IO a -&gt; IO a
</span><a href="Distribution.Simple.Utils.html#topHandler"><span class="hs-identifier hs-var">topHandler</span></a></span><span> </span><span class="annot"><span class="annottext">(IO () -&gt; IO ()) -&gt; IO () -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-157"></span><span>  </span><span id="local-6989586621679733166"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733166"><span class="hs-identifier hs-var">args'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; IO [String]
</span><a href="Distribution.Compat.ResponseFile.html#expandResponse"><span class="hs-identifier hs-var">expandResponse</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733168"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-158"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">CommandUI GlobalFlags
-&gt; [Command (IO ())]
-&gt; [String]
-&gt; CommandParse (GlobalFlags, CommandParse (IO ()))
forall a action.
CommandUI a
-&gt; [Command action]
-&gt; [String]
-&gt; CommandParse (a, CommandParse action)
</span><a href="Distribution.Simple.Command.html#commandsRun"><span class="hs-identifier hs-var">commandsRun</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Command (IO ())] -&gt; CommandUI GlobalFlags
forall action. [Command action] -&gt; CommandUI GlobalFlags
</span><a href="Distribution.Simple.Setup.html#globalCommand"><span class="hs-identifier hs-var">globalCommand</span></a></span><span> </span><span class="annot"><span class="annottext">[Command (IO ())]
</span><a href="#local-6989586621679733163"><span class="hs-identifier hs-var">commands</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Command (IO ())]
</span><a href="#local-6989586621679733163"><span class="hs-identifier hs-var">commands</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733166"><span class="hs-identifier hs-var">args'</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-159"></span><span>    </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandHelp"><span class="hs-identifier hs-type">CommandHelp</span></a></span><span>   </span><span id="local-6989586621679733161"><span class="annot"><span class="annottext">String -&gt; String
</span><a href="#local-6989586621679733161"><span class="hs-identifier hs-var">help</span></a></span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(String -&gt; String) -&gt; IO ()
</span><a href="#local-6989586621679733160"><span class="hs-identifier hs-var">printHelp</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="#local-6989586621679733161"><span class="hs-identifier hs-var">help</span></a></span><span>
</span><span id="line-160"></span><span>    </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandList"><span class="hs-identifier hs-type">CommandList</span></a></span><span>   </span><span id="local-6989586621679733158"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733158"><span class="hs-identifier hs-var">opts</span></a></span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; IO ()
</span><a href="#local-6989586621679733157"><span class="hs-identifier hs-var">printOptionsList</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733158"><span class="hs-identifier hs-var">opts</span></a></span><span>
</span><span id="line-161"></span><span>    </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandErrors"><span class="hs-identifier hs-type">CommandErrors</span></a></span><span> </span><span id="local-6989586621679733155"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733155"><span class="hs-identifier hs-var">errs</span></a></span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; IO ()
forall {b}. [String] -&gt; IO b
</span><a href="#local-6989586621679733154"><span class="hs-identifier hs-var">printErrors</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733155"><span class="hs-identifier hs-var">errs</span></a></span><span>
</span><span id="line-162"></span><span>    </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandReadyToGo"><span class="hs-identifier hs-type">CommandReadyToGo</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679733152"><span class="annot"><span class="annottext">GlobalFlags
</span><a href="#local-6989586621679733152"><span class="hs-identifier hs-var">flags</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679733151"><span class="annot"><span class="annottext">CommandParse (IO ())
</span><a href="#local-6989586621679733151"><span class="hs-identifier hs-var">commandParse</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-163"></span><span>      </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">CommandParse (IO ())
</span><a href="#local-6989586621679733151"><span class="hs-identifier hs-var">commandParse</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-164"></span><span>        </span><span class="annot"><span class="annottext">CommandParse (IO ())
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Flag Bool -&gt; Bool
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GlobalFlags -&gt; Flag Bool
</span><a href="Distribution.Simple.Setup.html#globalVersion"><span class="hs-identifier hs-var hs-var">globalVersion</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalFlags
</span><a href="#local-6989586621679733152"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">IO ()
</span><a href="#local-6989586621679733148"><span class="hs-identifier hs-var">printVersion</span></a></span><span>
</span><span id="line-165"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Flag Bool -&gt; Bool
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GlobalFlags -&gt; Flag Bool
</span><a href="Distribution.Simple.Setup.html#globalNumericVersion"><span class="hs-identifier hs-var hs-var">globalNumericVersion</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalFlags
</span><a href="#local-6989586621679733152"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">IO ()
</span><a href="#local-6989586621679733146"><span class="hs-identifier hs-var">printNumericVersion</span></a></span><span>
</span><span id="line-166"></span><span>        </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandHelp"><span class="hs-identifier hs-type">CommandHelp</span></a></span><span>     </span><span id="local-6989586621679733145"><span class="annot"><span class="annottext">String -&gt; String
</span><a href="#local-6989586621679733145"><span class="hs-identifier hs-var">help</span></a></span></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(String -&gt; String) -&gt; IO ()
</span><a href="#local-6989586621679733160"><span class="hs-identifier hs-var">printHelp</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="#local-6989586621679733145"><span class="hs-identifier hs-var">help</span></a></span><span>
</span><span id="line-167"></span><span>        </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandList"><span class="hs-identifier hs-type">CommandList</span></a></span><span>     </span><span id="local-6989586621679733144"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733144"><span class="hs-identifier hs-var">opts</span></a></span></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; IO ()
</span><a href="#local-6989586621679733157"><span class="hs-identifier hs-var">printOptionsList</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733144"><span class="hs-identifier hs-var">opts</span></a></span><span>
</span><span id="line-168"></span><span>        </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandErrors"><span class="hs-identifier hs-type">CommandErrors</span></a></span><span>   </span><span id="local-6989586621679733143"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733143"><span class="hs-identifier hs-var">errs</span></a></span></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; IO ()
forall {b}. [String] -&gt; IO b
</span><a href="#local-6989586621679733154"><span class="hs-identifier hs-var">printErrors</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733143"><span class="hs-identifier hs-var">errs</span></a></span><span>
</span><span id="line-169"></span><span>        </span><span class="annot"><a href="Distribution.Simple.Command.html#CommandReadyToGo"><span class="hs-identifier hs-type">CommandReadyToGo</span></a></span><span> </span><span id="local-6989586621679733142"><span class="annot"><span class="annottext">IO ()
</span><a href="#local-6989586621679733142"><span class="hs-identifier hs-var">action</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">IO ()
</span><a href="#local-6989586621679733142"><span class="hs-identifier hs-var">action</span></a></span><span>
</span><span id="line-170"></span><span>
</span><span id="line-171"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-172"></span><span>    </span><span id="local-6989586621679733160"><span class="annot"><span class="annottext">printHelp :: (String -&gt; String) -&gt; IO ()
</span><a href="#local-6989586621679733160"><span class="hs-identifier hs-var hs-var">printHelp</span></a></span></span><span> </span><span id="local-6989586621679733140"><span class="annot"><span class="annottext">String -&gt; String
</span><a href="#local-6989586621679733140"><span class="hs-identifier hs-var">help</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO String
</span><a href="../../base/src/System.Environment.html#getProgName"><span class="hs-identifier hs-var">getProgName</span></a></span><span> </span><span class="annot"><span class="annottext">IO String -&gt; (String -&gt; IO ()) -&gt; IO ()
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStr"><span class="hs-identifier hs-var">putStr</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; (String -&gt; String) -&gt; String -&gt; IO ()
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="#local-6989586621679733140"><span class="hs-identifier hs-var">help</span></a></span><span>
</span><span id="line-173"></span><span>    </span><span id="local-6989586621679733157"><span class="annot"><span class="annottext">printOptionsList :: [String] -&gt; IO ()
</span><a href="#local-6989586621679733157"><span class="hs-identifier hs-var hs-var">printOptionsList</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStr"><span class="hs-identifier hs-var">putStr</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; ([String] -&gt; String) -&gt; [String] -&gt; IO ()
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
</span><a href="../../base/src/Data.OldList.html#unlines"><span class="hs-identifier hs-var">unlines</span></a></span><span>
</span><span id="line-174"></span><span>    </span><span id="local-6989586621679733154"><span class="annot"><span class="annottext">printErrors :: [String] -&gt; IO b
</span><a href="#local-6989586621679733154"><span class="hs-identifier hs-var hs-var">printErrors</span></a></span></span><span> </span><span id="local-6989586621679733135"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733135"><span class="hs-identifier hs-var">errs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-175"></span><span>      </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStr"><span class="hs-identifier hs-var">putStr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\n&quot;</span></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733135"><span class="hs-identifier hs-var">errs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-176"></span><span>      </span><span class="annot"><span class="annottext">ExitCode -&gt; IO b
forall a. ExitCode -&gt; IO a
</span><a href="../../base/src/System.Exit.html#exitWith"><span class="hs-identifier hs-var">exitWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; ExitCode
</span><a href="../../base/src/GHC.IO.Exception.html#ExitFailure"><span class="hs-identifier hs-var">ExitFailure</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>
</span><span id="line-177"></span><span>    </span><span id="local-6989586621679733146"><span class="annot"><span class="annottext">printNumericVersion :: IO ()
</span><a href="#local-6989586621679733146"><span class="hs-identifier hs-var hs-var">printNumericVersion</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStrLn"><span class="hs-identifier hs-var">putStrLn</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="Distribution.Simple.Utils.html#cabalVersion"><span class="hs-identifier hs-var">cabalVersion</span></a></span><span>
</span><span id="line-178"></span><span>    </span><span id="local-6989586621679733148"><span class="annot"><span class="annottext">printVersion :: IO ()
</span><a href="#local-6989586621679733148"><span class="hs-identifier hs-var hs-var">printVersion</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStrLn"><span class="hs-identifier hs-var">putStrLn</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Cabal library version &quot;</span></span><span>
</span><span id="line-179"></span><span>                                  </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="Distribution.Simple.Utils.html#cabalVersion"><span class="hs-identifier hs-var">cabalVersion</span></a></span><span>
</span><span id="line-180"></span><span>
</span><span id="line-181"></span><span>    </span><span id="local-6989586621679733125"><span class="annot"><span class="annottext">progs :: ProgramDb
</span><a href="#local-6989586621679733125"><span class="hs-identifier hs-var hs-var">progs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Program] -&gt; ProgramDb -&gt; ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#addKnownPrograms"><span class="hs-identifier hs-var">addKnownPrograms</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [Program]
</span><a href="Distribution.Simple.UserHooks.html#hookedPrograms"><span class="hs-identifier hs-var hs-var">hookedPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#defaultProgramDb"><span class="hs-identifier hs-var">defaultProgramDb</span></a></span><span>
</span><span id="line-182"></span><span>    </span><span id="local-6989586621679733163"><span class="annot"><span class="annottext">commands :: [Command (IO ())]
</span><a href="#local-6989586621679733163"><span class="hs-identifier hs-var hs-var">commands</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-183"></span><span>      </span><span class="hs-special">[</span><span class="annot"><span class="annottext">ProgramDb -&gt; CommandUI ConfigFlags
</span><a href="Distribution.Simple.Setup.html#configureCommand"><span class="hs-identifier hs-var">configureCommand</span></a></span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733125"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="annot"><span class="annottext">CommandUI ConfigFlags
-&gt; (ConfigFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span>
</span><span id="line-184"></span><span>        </span><span class="hs-glyph">\</span><span id="local-6989586621679733117"><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733117"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span id="local-6989586621679733116"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733116"><span class="hs-keyword hs-var">as</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; ConfigFlags -&gt; [String] -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#configureAction"><span class="hs-identifier hs-var">configureAction</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733117"><span class="hs-identifier hs-var">fs</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733116"><span class="hs-keyword hs-var">as</span></a></span><span> </span><span class="annot"><span class="annottext">IO LocalBuildInfo -&gt; IO () -&gt; IO ()
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; m b -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E"><span class="hs-operator hs-var">&gt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">() -&gt; IO ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-185"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">ProgramDb -&gt; CommandUI BuildFlags
</span><a href="Distribution.Simple.Setup.html#buildCommand"><span class="hs-identifier hs-var">buildCommand</span></a></span><span>     </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733125"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="annot"><span class="annottext">CommandUI BuildFlags
-&gt; (BuildFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; BuildFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#buildAction"><span class="hs-identifier hs-var">buildAction</span></a></span><span>        </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-186"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">ProgramDb -&gt; CommandUI ShowBuildInfoFlags
</span><a href="Distribution.Simple.Setup.html#showBuildInfoCommand"><span class="hs-identifier hs-var">showBuildInfoCommand</span></a></span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733125"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="annot"><span class="annottext">CommandUI ShowBuildInfoFlags
-&gt; (ShowBuildInfoFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; ShowBuildInfoFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#showBuildInfoAction"><span class="hs-identifier hs-var">showBuildInfoAction</span></a></span><span>    </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-187"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">ProgramDb -&gt; CommandUI ReplFlags
</span><a href="Distribution.Simple.Setup.html#replCommand"><span class="hs-identifier hs-var">replCommand</span></a></span><span>      </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733125"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="annot"><span class="annottext">CommandUI ReplFlags
-&gt; (ReplFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; ReplFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#replAction"><span class="hs-identifier hs-var">replAction</span></a></span><span>         </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-188"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI InstallFlags
</span><a href="Distribution.Simple.Setup.html#installCommand"><span class="hs-identifier hs-var">installCommand</span></a></span><span>         </span><span class="annot"><span class="annottext">CommandUI InstallFlags
-&gt; (InstallFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; InstallFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#installAction"><span class="hs-identifier hs-var">installAction</span></a></span><span>      </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-189"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI CopyFlags
</span><a href="Distribution.Simple.Setup.html#copyCommand"><span class="hs-identifier hs-var">copyCommand</span></a></span><span>            </span><span class="annot"><span class="annottext">CommandUI CopyFlags
-&gt; (CopyFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; CopyFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#copyAction"><span class="hs-identifier hs-var">copyAction</span></a></span><span>         </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-190"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI DoctestFlags
</span><a href="Distribution.Simple.Setup.html#doctestCommand"><span class="hs-identifier hs-var">doctestCommand</span></a></span><span>         </span><span class="annot"><span class="annottext">CommandUI DoctestFlags
-&gt; (DoctestFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; DoctestFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#doctestAction"><span class="hs-identifier hs-var">doctestAction</span></a></span><span>      </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-191"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI HaddockFlags
</span><a href="Distribution.Simple.Setup.html#haddockCommand"><span class="hs-identifier hs-var">haddockCommand</span></a></span><span>         </span><span class="annot"><span class="annottext">CommandUI HaddockFlags
-&gt; (HaddockFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; HaddockFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#haddockAction"><span class="hs-identifier hs-var">haddockAction</span></a></span><span>      </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-192"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI CleanFlags
</span><a href="Distribution.Simple.Setup.html#cleanCommand"><span class="hs-identifier hs-var">cleanCommand</span></a></span><span>           </span><span class="annot"><span class="annottext">CommandUI CleanFlags
-&gt; (CleanFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; CleanFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#cleanAction"><span class="hs-identifier hs-var">cleanAction</span></a></span><span>        </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-193"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI SDistFlags
</span><a href="Distribution.Simple.Setup.html#sdistCommand"><span class="hs-identifier hs-var">sdistCommand</span></a></span><span>           </span><span class="annot"><span class="annottext">CommandUI SDistFlags
-&gt; (SDistFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; SDistFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#sdistAction"><span class="hs-identifier hs-var">sdistAction</span></a></span><span>        </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-194"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI HscolourFlags
</span><a href="Distribution.Simple.Setup.html#hscolourCommand"><span class="hs-identifier hs-var">hscolourCommand</span></a></span><span>        </span><span class="annot"><span class="annottext">CommandUI HscolourFlags
-&gt; (HscolourFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; HscolourFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#hscolourAction"><span class="hs-identifier hs-var">hscolourAction</span></a></span><span>     </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-195"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI RegisterFlags
</span><a href="Distribution.Simple.Setup.html#registerCommand"><span class="hs-identifier hs-var">registerCommand</span></a></span><span>        </span><span class="annot"><span class="annottext">CommandUI RegisterFlags
-&gt; (RegisterFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; RegisterFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#registerAction"><span class="hs-identifier hs-var">registerAction</span></a></span><span>     </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-196"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI RegisterFlags
</span><a href="Distribution.Simple.Setup.html#unregisterCommand"><span class="hs-identifier hs-var">unregisterCommand</span></a></span><span>      </span><span class="annot"><span class="annottext">CommandUI RegisterFlags
-&gt; (RegisterFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; RegisterFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#unregisterAction"><span class="hs-identifier hs-var">unregisterAction</span></a></span><span>   </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-197"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI TestFlags
</span><a href="Distribution.Simple.Setup.html#testCommand"><span class="hs-identifier hs-var">testCommand</span></a></span><span>            </span><span class="annot"><span class="annottext">CommandUI TestFlags
-&gt; (TestFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; TestFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#testAction"><span class="hs-identifier hs-var">testAction</span></a></span><span>         </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-198"></span><span>      </span><span class="hs-special">,</span><span class="annot"><span class="annottext">CommandUI BenchmarkFlags
</span><a href="Distribution.Simple.Setup.html#benchmarkCommand"><span class="hs-identifier hs-var">benchmarkCommand</span></a></span><span>       </span><span class="annot"><span class="annottext">CommandUI BenchmarkFlags
-&gt; (BenchmarkFlags -&gt; [String] -&gt; IO ()) -&gt; Command (IO ())
forall flags action.
CommandUI flags -&gt; (flags -&gt; [String] -&gt; action) -&gt; Command action
</span><a href="Distribution.Simple.Command.html#commandAddAction"><span class="hs-operator hs-var">`commandAddAction`</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; BenchmarkFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#benchAction"><span class="hs-identifier hs-var">benchAction</span></a></span><span>        </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733169"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-199"></span><span>      </span><span class="hs-special">]</span><span>
</span><span id="line-200"></span><span>
</span><span id="line-201"></span><span class="hs-comment">-- | Combine the preprocessors in the given hooks with the</span><span>
</span><span id="line-202"></span><span class="hs-comment">-- preprocessors built into cabal.</span><span>
</span><span id="line-203"></span><span class="annot"><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-type">allSuffixHandlers</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span>
</span><span id="line-204"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Simple.PreProcess.html#PPSuffixHandler"><span class="hs-identifier hs-type">PPSuffixHandler</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-205"></span><span id="allSuffixHandlers"><span class="annot"><span class="annottext">allSuffixHandlers :: UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-var hs-var">allSuffixHandlers</span></a></span></span><span> </span><span id="local-6989586621679733085"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733085"><span class="hs-identifier hs-var">hooks</span></a></span></span><span>
</span><span id="line-206"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[PPSuffixHandler] -&gt; [PPSuffixHandler] -&gt; [PPSuffixHandler]
</span><a href="#local-6989586621679733084"><span class="hs-identifier hs-var">overridesPP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.UserHooks.html#hookedPreProcessors"><span class="hs-identifier hs-var hs-var">hookedPreProcessors</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733085"><span class="hs-identifier hs-var">hooks</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[PPSuffixHandler]
</span><a href="Distribution.Simple.PreProcess.html#knownSuffixHandlers"><span class="hs-identifier hs-var">knownSuffixHandlers</span></a></span><span>
</span><span id="line-207"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-208"></span><span>      </span><span class="annot"><a href="#local-6989586621679733084"><span class="hs-identifier hs-type">overridesPP</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Simple.PreProcess.html#PPSuffixHandler"><span class="hs-identifier hs-type">PPSuffixHandler</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Simple.PreProcess.html#PPSuffixHandler"><span class="hs-identifier hs-type">PPSuffixHandler</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Simple.PreProcess.html#PPSuffixHandler"><span class="hs-identifier hs-type">PPSuffixHandler</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-209"></span><span>      </span><span id="local-6989586621679733084"><span class="annot"><span class="annottext">overridesPP :: [PPSuffixHandler] -&gt; [PPSuffixHandler] -&gt; [PPSuffixHandler]
</span><a href="#local-6989586621679733084"><span class="hs-identifier hs-var hs-var">overridesPP</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(PPSuffixHandler -&gt; PPSuffixHandler -&gt; Bool)
-&gt; [PPSuffixHandler] -&gt; [PPSuffixHandler] -&gt; [PPSuffixHandler]
forall a. (a -&gt; a -&gt; Bool) -&gt; [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#unionBy"><span class="hs-identifier hs-var">unionBy</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679733081"><span class="annot"><span class="annottext">PPSuffixHandler
</span><a href="#local-6989586621679733081"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621679733080"><span class="annot"><span class="annottext">PPSuffixHandler
</span><a href="#local-6989586621679733080"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PPSuffixHandler -&gt; String
forall a b. (a, b) -&gt; a
</span><a href="../../base/src/Data.Tuple.html#fst"><span class="hs-identifier hs-var">fst</span></a></span><span> </span><span class="annot"><span class="annottext">PPSuffixHandler
</span><a href="#local-6989586621679733081"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">PPSuffixHandler -&gt; String
forall a b. (a, b) -&gt; a
</span><a href="../../base/src/Data.Tuple.html#fst"><span class="hs-identifier hs-var">fst</span></a></span><span> </span><span class="annot"><span class="annottext">PPSuffixHandler
</span><a href="#local-6989586621679733080"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-210"></span><span>
</span><span id="line-211"></span><span class="annot"><a href="Distribution.Simple.html#configureAction"><span class="hs-identifier hs-type">configureAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-212"></span><span id="configureAction"><span class="annot"><span class="annottext">configureAction :: UserHooks -&gt; ConfigFlags -&gt; [String] -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#configureAction"><span class="hs-identifier hs-var hs-var">configureAction</span></a></span></span><span> </span><span id="local-6989586621679733079"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733079"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679733078"><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733078"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679733077"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733077"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-213"></span><span>    </span><span id="local-6989586621679733076"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733076"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfigFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#configDistPref"><span class="hs-identifier hs-var hs-var">configDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733078"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-214"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733073"><span class="annot"><span class="annottext">flags' :: ConfigFlags
</span><a href="#local-6989586621679733073"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733078"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">configDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#configDistPref"><span class="hs-identifier hs-var">configDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733076"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-215"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">configArgs :: [String]
</span><a href="Distribution.Simple.Setup.html#configArgs"><span class="hs-identifier hs-var">configArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733077"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-216"></span><span>
</span><span id="line-217"></span><span>    </span><span class="hs-comment">-- See docs for 'HookedBuildInfo'</span><span>
</span><span id="line-218"></span><span>    </span><span id="local-6989586621679733070"><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679733070"><span class="hs-identifier hs-var">pbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; ConfigFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preConf"><span class="hs-identifier hs-var hs-var">preConf</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733079"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733077"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733073"><span class="hs-identifier hs-var">flags'</span></a></span><span>
</span><span id="line-219"></span><span>
</span><span id="line-220"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621679733068"><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679733068"><span class="hs-identifier hs-var">mb_pd_file</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679733067"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733067"><span class="hs-identifier hs-var">pkg_descr0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; Verbosity
-&gt; Maybe String
-&gt; IO (Maybe String, GenericPackageDescription)
</span><a href="Distribution.Simple.html#confPkgDescr"><span class="hs-identifier hs-var">confPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733079"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733065"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-221"></span><span>                                    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Flag String -&gt; Maybe String
forall a. Flag a -&gt; Maybe a
</span><a href="Distribution.Simple.Flag.html#flagToMaybe"><span class="hs-identifier hs-var">flagToMaybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfigFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#configCabalFilePath"><span class="hs-identifier hs-var hs-var">configCabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733078"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-222"></span><span>
</span><span id="line-223"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733062"><span class="annot"><span class="annottext">epkg_descr :: (GenericPackageDescription, HookedBuildInfo)
</span><a href="#local-6989586621679733062"><span class="hs-identifier hs-var hs-var">epkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733067"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679733070"><span class="hs-identifier hs-var">pbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-224"></span><span>
</span><span id="line-225"></span><span>    </span><span id="local-6989586621679733061"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733061"><span class="hs-identifier hs-var">localbuildinfo0</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; (GenericPackageDescription, HookedBuildInfo)
-&gt; ConfigFlags
-&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#confHook"><span class="hs-identifier hs-var hs-var">confHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733079"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">(GenericPackageDescription, HookedBuildInfo)
</span><a href="#local-6989586621679733062"><span class="hs-identifier hs-var">epkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733073"><span class="hs-identifier hs-var">flags'</span></a></span><span>
</span><span id="line-226"></span><span>
</span><span id="line-227"></span><span>    </span><span class="hs-comment">-- remember the .cabal filename if we know it</span><span>
</span><span id="line-228"></span><span>    </span><span class="hs-comment">-- and all the extra command line args</span><span>
</span><span id="line-229"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733059"><span class="annot"><span class="annottext">localbuildinfo :: LocalBuildInfo
</span><a href="#local-6989586621679733059"><span class="hs-identifier hs-var hs-var">localbuildinfo</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733061"><span class="hs-identifier hs-var">localbuildinfo0</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-230"></span><span>                           </span><span class="annot"><span class="annottext">pkgDescrFile :: Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#pkgDescrFile"><span class="hs-identifier hs-var">pkgDescrFile</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679733068"><span class="hs-identifier hs-var">mb_pd_file</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-231"></span><span>                           </span><span class="annot"><span class="annottext">extraConfigArgs :: [String]
</span><a href="Distribution.Types.LocalBuildInfo.html#extraConfigArgs"><span class="hs-identifier hs-var">extraConfigArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733077"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-232"></span><span>                         </span><span class="hs-special">}</span><span>
</span><span id="line-233"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.Configure.html#writePersistBuildConfig"><span class="hs-identifier hs-var">writePersistBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733076"><span class="hs-identifier hs-var">distPref</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733059"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span>
</span><span id="line-234"></span><span>
</span><span id="line-235"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733055"><span class="annot"><span class="annottext">pkg_descr :: PackageDescription
</span><a href="#local-6989586621679733055"><span class="hs-identifier hs-var hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733059"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span>
</span><span id="line-236"></span><span>    </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; ConfigFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postConf"><span class="hs-identifier hs-var hs-var">postConf</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733079"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733077"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733073"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679733055"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733059"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span>
</span><span id="line-237"></span><span>    </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733059"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span>
</span><span id="line-238"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-239"></span><span>    </span><span id="local-6989586621679733065"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679733065"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfigFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#configVerbosity"><span class="hs-identifier hs-var hs-var">configVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679733078"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-240"></span><span>
</span><span id="line-241"></span><span class="annot"><a href="Distribution.Simple.html#confPkgDescr"><span class="hs-identifier hs-type">confPkgDescr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span>
</span><span id="line-242"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.GenericPackageDescription.html#GenericPackageDescription"><span class="hs-identifier hs-type">GenericPackageDescription</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-243"></span><span id="confPkgDescr"><span class="annot"><span class="annottext">confPkgDescr :: UserHooks
-&gt; Verbosity
-&gt; Maybe String
-&gt; IO (Maybe String, GenericPackageDescription)
</span><a href="Distribution.Simple.html#confPkgDescr"><span class="hs-identifier hs-var hs-var">confPkgDescr</span></a></span></span><span> </span><span id="local-6989586621679733048"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733048"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679733047"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733047"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679733046"><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679733046"><span class="hs-identifier hs-var">mb_path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-244"></span><span>  </span><span id="local-6989586621679733045"><span class="annot"><span class="annottext">Maybe GenericPackageDescription
</span><a href="#local-6989586621679733045"><span class="hs-identifier hs-var">mdescr</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; IO (Maybe GenericPackageDescription)
</span><a href="Distribution.Simple.UserHooks.html#readDesc"><span class="hs-identifier hs-var hs-var">readDesc</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733048"><span class="hs-identifier hs-var">hooks</span></a></span><span>
</span><span id="line-245"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe GenericPackageDescription
</span><a href="#local-6989586621679733045"><span class="hs-identifier hs-var">mdescr</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-246"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679733044"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733044"><span class="hs-identifier hs-var">descr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Maybe String, GenericPackageDescription)
-&gt; IO (Maybe String, GenericPackageDescription)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe String
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733044"><span class="hs-identifier hs-var">descr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-247"></span><span>    </span><span class="annot"><span class="annottext">Maybe GenericPackageDescription
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-248"></span><span>        </span><span id="local-6989586621679733043"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733043"><span class="hs-identifier hs-var">pdfile</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679733046"><span class="hs-identifier hs-var">mb_path</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-249"></span><span>                    </span><span class="annot"><span class="annottext">Maybe String
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; IO String
</span><a href="Distribution.Simple.Utils.html#defaultPackageDesc"><span class="hs-identifier hs-var">defaultPackageDesc</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733047"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-250"></span><span>                    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679733041"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733041"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO String
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733041"><span class="hs-identifier hs-var">path</span></a></span><span>
</span><span id="line-251"></span><span>        </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#info"><span class="hs-identifier hs-var">info</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733047"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Using Parsec parser&quot;</span></span><span>
</span><span id="line-252"></span><span>        </span><span id="local-6989586621679733039"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733039"><span class="hs-identifier hs-var">descr</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO GenericPackageDescription
</span><a href="Distribution.PackageDescription.Parsec.html#readGenericPackageDescription"><span class="hs-identifier hs-var">readGenericPackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733047"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733043"><span class="hs-identifier hs-var">pdfile</span></a></span><span>
</span><span id="line-253"></span><span>        </span><span class="annot"><span class="annottext">(Maybe String, GenericPackageDescription)
-&gt; IO (Maybe String, GenericPackageDescription)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Maybe String
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733043"><span class="hs-identifier hs-var">pdfile</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679733039"><span class="hs-identifier hs-var">descr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-254"></span><span>
</span><span id="line-255"></span><span class="annot"><a href="Distribution.Simple.html#buildAction"><span class="hs-identifier hs-type">buildAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BuildFlags"><span class="hs-identifier hs-type">BuildFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-256"></span><span id="buildAction"><span class="annot"><span class="annottext">buildAction :: UserHooks -&gt; BuildFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#buildAction"><span class="hs-identifier hs-var hs-var">buildAction</span></a></span></span><span> </span><span id="local-6989586621679733037"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733037"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679733036"><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733036"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679733035"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733035"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-257"></span><span>  </span><span id="local-6989586621679733034"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733034"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#buildDistPref"><span class="hs-identifier hs-var hs-var">buildDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733036"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-258"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733030"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679733030"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#buildVerbosity"><span class="hs-identifier hs-var hs-var">buildVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733036"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-259"></span><span>  </span><span id="local-6989586621679733028"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733028"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733037"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733030"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733034"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-260"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733026"><span class="annot"><span class="annottext">flags' :: BuildFlags
</span><a href="#local-6989586621679733026"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733036"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">buildDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#buildDistPref"><span class="hs-identifier hs-var">buildDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733034"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-261"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">buildCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#buildCabalFilePath"><span class="hs-identifier hs-var">buildCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733028"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-262"></span><span>
</span><span id="line-263"></span><span>  </span><span id="local-6989586621679733022"><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733022"><span class="hs-identifier hs-var">progs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity
-&gt; [(String, String)]
-&gt; [(String, [String])]
-&gt; ProgramDb
-&gt; IO ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#reconfigurePrograms"><span class="hs-identifier hs-var">reconfigurePrograms</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733030"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-264"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildFlags -&gt; [(String, String)]
</span><a href="Distribution.Simple.Setup.html#buildProgramPaths"><span class="hs-identifier hs-var hs-var">buildProgramPaths</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733026"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-265"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildFlags -&gt; [(String, [String])]
</span><a href="Distribution.Simple.Setup.html#buildProgramArgs"><span class="hs-identifier hs-var hs-var">buildProgramArgs</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733026"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-266"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733028"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-267"></span><span>
</span><span id="line-268"></span><span>  </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; BuildFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; BuildFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; BuildFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; BuildFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733030"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; BuildFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBuild"><span class="hs-identifier hs-var hs-var">preBuild</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BuildFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#buildHook"><span class="hs-identifier hs-var hs-var">buildHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; BuildFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBuild"><span class="hs-identifier hs-var hs-var">postBuild</span></a></span><span>
</span><span id="line-269"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733028"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">withPrograms :: ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var">withPrograms</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733022"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-270"></span><span>               </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733037"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733026"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">buildArgs :: [String]
</span><a href="Distribution.Simple.Setup.html#buildArgs"><span class="hs-identifier hs-var">buildArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733035"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733035"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-271"></span><span>
</span><span id="line-272"></span><span class="annot"><a href="Distribution.Simple.html#showBuildInfoAction"><span class="hs-identifier hs-type">showBuildInfoAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ShowBuildInfoFlags"><span class="hs-identifier hs-type">ShowBuildInfoFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-273"></span><span id="showBuildInfoAction"><span class="annot"><span class="annottext">showBuildInfoAction :: UserHooks -&gt; ShowBuildInfoFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#showBuildInfoAction"><span class="hs-identifier hs-var hs-var">showBuildInfoAction</span></a></span></span><span> </span><span id="local-6989586621679733012"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733012"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.Setup.html#ShowBuildInfoFlags"><span class="hs-identifier hs-type">ShowBuildInfoFlags</span></a></span><span> </span><span id="local-6989586621679733010"><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733010"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679733009"><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679733009"><span class="hs-identifier hs-var">fileOutput</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679733008"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733008"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-274"></span><span>  </span><span id="local-6989586621679733007"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733007"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#buildDistPref"><span class="hs-identifier hs-var hs-var">buildDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733010"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-275"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733004"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679733004"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#buildVerbosity"><span class="hs-identifier hs-var hs-var">buildVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733010"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-276"></span><span>  </span><span id="local-6989586621679733003"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733003"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733012"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733004"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733007"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-277"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679733002"><span class="annot"><span class="annottext">flags' :: BuildFlags
</span><a href="#local-6989586621679733002"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733010"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">buildDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#buildDistPref"><span class="hs-identifier hs-var">buildDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679733007"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-278"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">buildCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#buildCabalFilePath"><span class="hs-identifier hs-var">buildCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733003"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-279"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-280"></span><span>
</span><span id="line-281"></span><span>  </span><span id="local-6989586621679733001"><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733001"><span class="hs-identifier hs-var">progs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity
-&gt; [(String, String)]
-&gt; [(String, [String])]
-&gt; ProgramDb
-&gt; IO ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#reconfigurePrograms"><span class="hs-identifier hs-var">reconfigurePrograms</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679733004"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-282"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildFlags -&gt; [(String, String)]
</span><a href="Distribution.Simple.Setup.html#buildProgramPaths"><span class="hs-identifier hs-var hs-var">buildProgramPaths</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733002"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-283"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildFlags -&gt; [(String, [String])]
</span><a href="Distribution.Simple.Setup.html#buildProgramArgs"><span class="hs-identifier hs-var hs-var">buildProgramArgs</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733002"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-284"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733003"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-285"></span><span>
</span><span id="line-286"></span><span>  </span><span id="local-6989586621679733000"><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679733000"><span class="hs-identifier hs-var">pbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; BuildFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBuild"><span class="hs-identifier hs-var hs-var">preBuild</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733012"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733008"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733002"><span class="hs-identifier hs-var">flags'</span></a></span><span>
</span><span id="line-287"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732999"><span class="annot"><span class="annottext">lbi' :: LocalBuildInfo
</span><a href="#local-6989586621679732999"><span class="hs-identifier hs-var hs-var">lbi'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679733003"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">withPrograms :: ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var">withPrograms</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679733001"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-288"></span><span>      </span><span id="local-6989586621679732998"><span class="annot"><span class="annottext">pkg_descr0 :: PackageDescription
</span><a href="#local-6989586621679732998"><span class="hs-identifier hs-var hs-var">pkg_descr0</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732999"><span class="hs-identifier hs-var">lbi'</span></a></span><span>
</span><span id="line-289"></span><span>      </span><span id="local-6989586621679732997"><span class="annot"><span class="annottext">pkg_descr :: PackageDescription
</span><a href="#local-6989586621679732997"><span class="hs-identifier hs-var hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; PackageDescription -&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-var">updatePackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679733000"><span class="hs-identifier hs-var">pbi</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732998"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span>
</span><span id="line-290"></span><span>      </span><span class="hs-comment">-- TODO: Somehow don't ignore build hook?</span><span>
</span><span id="line-291"></span><span>  </span><span id="local-6989586621679732995"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732995"><span class="hs-identifier hs-var">buildInfoString</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; BuildFlags -&gt; IO String
</span><a href="Distribution.Simple.Build.html#showBuildInfo"><span class="hs-identifier hs-var">showBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732997"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732999"><span class="hs-identifier hs-var">lbi'</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733010"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-292"></span><span>
</span><span id="line-293"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679733009"><span class="hs-identifier hs-var">fileOutput</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-294"></span><span>    </span><span class="annot"><span class="annottext">Maybe String
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStr"><span class="hs-identifier hs-var">putStr</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732995"><span class="hs-identifier hs-var">buildInfoString</span></a></span><span>
</span><span id="line-295"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679732993"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732993"><span class="hs-identifier hs-var">fp</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#writeFile"><span class="hs-identifier hs-var">writeFile</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732993"><span class="hs-identifier hs-var">fp</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732995"><span class="hs-identifier hs-var">buildInfoString</span></a></span><span>
</span><span id="line-296"></span><span>
</span><span id="line-297"></span><span>  </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; BuildFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBuild"><span class="hs-identifier hs-var hs-var">postBuild</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679733012"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679733008"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679733002"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732997"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732999"><span class="hs-identifier hs-var">lbi'</span></a></span><span>
</span><span id="line-298"></span><span>
</span><span id="line-299"></span><span class="annot"><a href="Distribution.Simple.html#replAction"><span class="hs-identifier hs-type">replAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ReplFlags"><span class="hs-identifier hs-type">ReplFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-300"></span><span id="replAction"><span class="annot"><span class="annottext">replAction :: UserHooks -&gt; ReplFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#replAction"><span class="hs-identifier hs-var hs-var">replAction</span></a></span></span><span> </span><span id="local-6989586621679732991"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732991"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732990"><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732990"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732989"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732989"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-301"></span><span>  </span><span id="local-6989586621679732988"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732988"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ReplFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#replDistPref"><span class="hs-identifier hs-var hs-var">replDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732990"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-302"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732984"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732984"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#replVerbosity"><span class="hs-identifier hs-var hs-var">replVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732990"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-303"></span><span>      </span><span id="local-6989586621679732982"><span class="annot"><span class="annottext">flags' :: ReplFlags
</span><a href="#local-6989586621679732982"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732990"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">replDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#replDistPref"><span class="hs-identifier hs-var">replDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732988"><span class="hs-identifier hs-var">distPref</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-304"></span><span>
</span><span id="line-305"></span><span>  </span><span id="local-6989586621679732981"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732981"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732991"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732984"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732988"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-306"></span><span>  </span><span id="local-6989586621679732980"><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732980"><span class="hs-identifier hs-var">progs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity
-&gt; [(String, String)]
-&gt; [(String, [String])]
-&gt; ProgramDb
-&gt; IO ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#reconfigurePrograms"><span class="hs-identifier hs-var">reconfigurePrograms</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732984"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-307"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ReplFlags -&gt; [(String, String)]
</span><a href="Distribution.Simple.Setup.html#replProgramPaths"><span class="hs-identifier hs-var hs-var">replProgramPaths</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732982"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-308"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ReplFlags -&gt; [(String, [String])]
</span><a href="Distribution.Simple.Setup.html#replProgramArgs"><span class="hs-identifier hs-var hs-var">replProgramArgs</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732982"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-309"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732981"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-310"></span><span>
</span><span id="line-311"></span><span>  </span><span class="hs-comment">-- As far as I can tell, the only reason this doesn't use</span><span>
</span><span id="line-312"></span><span>  </span><span class="hs-comment">-- 'hookedActionWithArgs' is because the arguments of 'replHook'</span><span>
</span><span id="line-313"></span><span>  </span><span class="hs-comment">-- takes the args explicitly.  UGH.   -- ezyang</span><span>
</span><span id="line-314"></span><span>  </span><span id="local-6989586621679732977"><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732977"><span class="hs-identifier hs-var">pbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; ReplFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preRepl"><span class="hs-identifier hs-var hs-var">preRepl</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732991"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732989"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732982"><span class="hs-identifier hs-var">flags'</span></a></span><span>
</span><span id="line-315"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732975"><span class="annot"><span class="annottext">pkg_descr0 :: PackageDescription
</span><a href="#local-6989586621679732975"><span class="hs-identifier hs-var hs-var">pkg_descr0</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732981"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-316"></span><span>  </span><span class="annot"><span class="annottext">Verbosity -&gt; PackageDescription -&gt; HookedBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-var">sanityCheckHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732984"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732975"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732977"><span class="hs-identifier hs-var">pbi</span></a></span><span>
</span><span id="line-317"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732973"><span class="annot"><span class="annottext">pkg_descr :: PackageDescription
</span><a href="#local-6989586621679732973"><span class="hs-identifier hs-var hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; PackageDescription -&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-var">updatePackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732977"><span class="hs-identifier hs-var">pbi</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732975"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span>
</span><span id="line-318"></span><span>      </span><span id="local-6989586621679732972"><span class="annot"><span class="annottext">lbi' :: LocalBuildInfo
</span><a href="#local-6989586621679732972"><span class="hs-identifier hs-var hs-var">lbi'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732981"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">withPrograms :: ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var">withPrograms</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732980"><span class="hs-identifier hs-var">progs</span></a></span><span>
</span><span id="line-319"></span><span>                 </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">localPkgDescr :: PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var">localPkgDescr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732973"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-320"></span><span>  </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; ReplFlags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#replHook"><span class="hs-identifier hs-var hs-var">replHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732991"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732973"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732972"><span class="hs-identifier hs-var">lbi'</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732991"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732982"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732989"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-321"></span><span>  </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; ReplFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postRepl"><span class="hs-identifier hs-var hs-var">postRepl</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732991"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732989"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732982"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732973"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732972"><span class="hs-identifier hs-var">lbi'</span></a></span><span>
</span><span id="line-322"></span><span>
</span><span id="line-323"></span><span class="annot"><a href="Distribution.Simple.html#hscolourAction"><span class="hs-identifier hs-type">hscolourAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HscolourFlags"><span class="hs-identifier hs-type">HscolourFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-324"></span><span id="hscolourAction"><span class="annot"><span class="annottext">hscolourAction :: UserHooks -&gt; HscolourFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#hscolourAction"><span class="hs-identifier hs-var hs-var">hscolourAction</span></a></span></span><span> </span><span id="local-6989586621679732969"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732969"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732968"><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732968"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732967"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732967"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-325"></span><span>    </span><span id="local-6989586621679732966"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732966"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HscolourFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#hscolourDistPref"><span class="hs-identifier hs-var hs-var">hscolourDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732968"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-326"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732962"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732962"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HscolourFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#hscolourVerbosity"><span class="hs-identifier hs-var hs-var">hscolourVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732968"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-327"></span><span>    </span><span id="local-6989586621679732960"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732960"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732969"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732962"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732966"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-328"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732959"><span class="annot"><span class="annottext">flags' :: HscolourFlags
</span><a href="#local-6989586621679732959"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732968"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">hscolourDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#hscolourDistPref"><span class="hs-identifier hs-var">hscolourDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732966"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-329"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">hscolourCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#hscolourCabalFilePath"><span class="hs-identifier hs-var">hscolourCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732960"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-330"></span><span>
</span><span id="line-331"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; HscolourFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; HscolourFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; HscolourFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; HscolourFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732962"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; HscolourFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHscolour"><span class="hs-identifier hs-var hs-var">preHscolour</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; HscolourFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#hscolourHook"><span class="hs-identifier hs-var hs-var">hscolourHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; HscolourFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postHscolour"><span class="hs-identifier hs-var hs-var">postHscolour</span></a></span><span>
</span><span id="line-332"></span><span>                 </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732969"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732962"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732966"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-333"></span><span>                 </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732969"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732959"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732967"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-334"></span><span>
</span><span id="line-335"></span><span class="annot"><a href="Distribution.Simple.html#doctestAction"><span class="hs-identifier hs-type">doctestAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#DoctestFlags"><span class="hs-identifier hs-type">DoctestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-336"></span><span id="doctestAction"><span class="annot"><span class="annottext">doctestAction :: UserHooks -&gt; DoctestFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#doctestAction"><span class="hs-identifier hs-var hs-var">doctestAction</span></a></span></span><span> </span><span id="local-6989586621679732954"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732954"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732953"><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732953"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732952"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732952"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-337"></span><span>  </span><span id="local-6989586621679732951"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732951"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DoctestFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#doctestDistPref"><span class="hs-identifier hs-var hs-var">doctestDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732953"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-338"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732947"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732947"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">DoctestFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#doctestVerbosity"><span class="hs-identifier hs-var hs-var">doctestVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732953"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-339"></span><span>      </span><span id="local-6989586621679732945"><span class="annot"><span class="annottext">flags' :: DoctestFlags
</span><a href="#local-6989586621679732945"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732953"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">doctestDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#doctestDistPref"><span class="hs-identifier hs-var">doctestDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732951"><span class="hs-identifier hs-var">distPref</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-340"></span><span>
</span><span id="line-341"></span><span>  </span><span id="local-6989586621679732944"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732944"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732954"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732947"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732951"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-342"></span><span>  </span><span id="local-6989586621679732943"><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732943"><span class="hs-identifier hs-var">progs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity
-&gt; [(String, String)]
-&gt; [(String, [String])]
-&gt; ProgramDb
-&gt; IO ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#reconfigurePrograms"><span class="hs-identifier hs-var">reconfigurePrograms</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732947"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-343"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DoctestFlags -&gt; [(String, String)]
</span><a href="Distribution.Simple.Setup.html#doctestProgramPaths"><span class="hs-identifier hs-var hs-var">doctestProgramPaths</span></a></span><span> </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732945"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-344"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DoctestFlags -&gt; [(String, [String])]
</span><a href="Distribution.Simple.Setup.html#doctestProgramArgs"><span class="hs-identifier hs-var hs-var">doctestProgramArgs</span></a></span><span>  </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732945"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-345"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732944"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-346"></span><span>
</span><span id="line-347"></span><span>  </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; DoctestFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; DoctestFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; DoctestFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; DoctestFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732947"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; DoctestFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preDoctest"><span class="hs-identifier hs-var hs-var">preDoctest</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; DoctestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#doctestHook"><span class="hs-identifier hs-var hs-var">doctestHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; DoctestFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postDoctest"><span class="hs-identifier hs-var hs-var">postDoctest</span></a></span><span>
</span><span id="line-348"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732944"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">withPrograms :: ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var">withPrograms</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732943"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-349"></span><span>               </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732954"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732945"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732952"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-350"></span><span>
</span><span id="line-351"></span><span class="annot"><a href="Distribution.Simple.html#haddockAction"><span class="hs-identifier hs-type">haddockAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HaddockFlags"><span class="hs-identifier hs-type">HaddockFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-352"></span><span id="haddockAction"><span class="annot"><span class="annottext">haddockAction :: UserHooks -&gt; HaddockFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#haddockAction"><span class="hs-identifier hs-var hs-var">haddockAction</span></a></span></span><span> </span><span id="local-6989586621679732937"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732937"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732936"><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732936"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732935"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732935"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-353"></span><span>  </span><span id="local-6989586621679732934"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732934"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HaddockFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#haddockDistPref"><span class="hs-identifier hs-var hs-var">haddockDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732936"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-354"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732930"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732930"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#haddockVerbosity"><span class="hs-identifier hs-var hs-var">haddockVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732936"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-355"></span><span>  </span><span id="local-6989586621679732928"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732928"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732937"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732930"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732934"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-356"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732927"><span class="annot"><span class="annottext">flags' :: HaddockFlags
</span><a href="#local-6989586621679732927"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732936"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">haddockDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#haddockDistPref"><span class="hs-identifier hs-var">haddockDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732934"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-357"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">haddockCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#haddockCabalFilePath"><span class="hs-identifier hs-var">haddockCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732928"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-358"></span><span>
</span><span id="line-359"></span><span>  </span><span id="local-6989586621679732925"><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732925"><span class="hs-identifier hs-var">progs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity
-&gt; [(String, String)]
-&gt; [(String, [String])]
-&gt; ProgramDb
-&gt; IO ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#reconfigurePrograms"><span class="hs-identifier hs-var">reconfigurePrograms</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732930"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-360"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HaddockFlags -&gt; [(String, String)]
</span><a href="Distribution.Simple.Setup.html#haddockProgramPaths"><span class="hs-identifier hs-var hs-var">haddockProgramPaths</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732927"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-361"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HaddockFlags -&gt; [(String, [String])]
</span><a href="Distribution.Simple.Setup.html#haddockProgramArgs"><span class="hs-identifier hs-var hs-var">haddockProgramArgs</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732927"><span class="hs-identifier hs-var">flags'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-362"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732928"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-363"></span><span>
</span><span id="line-364"></span><span>  </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; HaddockFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; HaddockFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; HaddockFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; HaddockFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732930"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; HaddockFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHaddock"><span class="hs-identifier hs-var hs-var">preHaddock</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; HaddockFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#haddockHook"><span class="hs-identifier hs-var hs-var">haddockHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; HaddockFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postHaddock"><span class="hs-identifier hs-var hs-var">postHaddock</span></a></span><span>
</span><span id="line-365"></span><span>               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732928"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">withPrograms :: ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var">withPrograms</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732925"><span class="hs-identifier hs-var">progs</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-366"></span><span>               </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732937"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732927"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">haddockArgs :: [String]
</span><a href="Distribution.Simple.Setup.html#haddockArgs"><span class="hs-identifier hs-var">haddockArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732935"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732935"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-367"></span><span>
</span><span id="line-368"></span><span class="annot"><a href="Distribution.Simple.html#cleanAction"><span class="hs-identifier hs-type">cleanAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CleanFlags"><span class="hs-identifier hs-type">CleanFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-369"></span><span id="cleanAction"><span class="annot"><span class="annottext">cleanAction :: UserHooks -&gt; CleanFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#cleanAction"><span class="hs-identifier hs-var hs-var">cleanAction</span></a></span></span><span> </span><span id="local-6989586621679732918"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732917"><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732917"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732916"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732916"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-370"></span><span>    </span><span id="local-6989586621679732915"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732915"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#cleanDistPref"><span class="hs-identifier hs-var hs-var">cleanDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732917"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-371"></span><span>
</span><span id="line-372"></span><span>    </span><span id="local-6989586621679732913"><span class="annot"><span class="annottext">Either ConfigStateFileError LocalBuildInfo
</span><a href="#local-6989586621679732913"><span class="hs-identifier hs-var">elbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; Verbosity
-&gt; String
-&gt; IO (Either ConfigStateFileError LocalBuildInfo)
</span><a href="Distribution.Simple.html#tryGetBuildConfig"><span class="hs-identifier hs-var">tryGetBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732911"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732915"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-373"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732908"><span class="annot"><span class="annottext">flags' :: CleanFlags
</span><a href="#local-6989586621679732908"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732917"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">cleanDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#cleanDistPref"><span class="hs-identifier hs-var">cleanDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732915"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-374"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">cleanCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#cleanCabalFilePath"><span class="hs-identifier hs-var">cleanCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Either ConfigStateFileError LocalBuildInfo
</span><a href="#local-6989586621679732913"><span class="hs-identifier hs-var">elbi</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-375"></span><span>                           </span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigStateFileError
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Flag String
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span>
</span><span id="line-376"></span><span>                           </span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621679732906"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732906"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732906"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-377"></span><span>
</span><span id="line-378"></span><span>    </span><span id="local-6989586621679732905"><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732905"><span class="hs-identifier hs-var">pbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; CleanFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preClean"><span class="hs-identifier hs-var hs-var">preClean</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732916"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732908"><span class="hs-identifier hs-var">flags'</span></a></span><span>
</span><span id="line-379"></span><span>
</span><span id="line-380"></span><span>    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe String
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732903"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679732903"><span class="hs-identifier hs-var">ppd</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; Verbosity
-&gt; Maybe String
-&gt; IO (Maybe String, GenericPackageDescription)
</span><a href="Distribution.Simple.html#confPkgDescr"><span class="hs-identifier hs-var">confPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732911"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe String
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-381"></span><span>    </span><span class="hs-comment">-- It might seem like we are doing something clever here</span><span>
</span><span id="line-382"></span><span>    </span><span class="hs-comment">-- but we're really not: if you look at the implementation</span><span>
</span><span id="line-383"></span><span>    </span><span class="hs-comment">-- of 'clean' in the end all the package description is</span><span>
</span><span id="line-384"></span><span>    </span><span class="hs-comment">-- used for is to clear out @extra-tmp-files@.  IMO,</span><span>
</span><span id="line-385"></span><span>    </span><span class="hs-comment">-- the configure script goo should go into @dist@ too!</span><span>
</span><span id="line-386"></span><span>    </span><span class="hs-comment">--          -- ezyang</span><span>
</span><span id="line-387"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732902"><span class="annot"><span class="annottext">pkg_descr0 :: PackageDescription
</span><a href="#local-6989586621679732902"><span class="hs-identifier hs-var hs-var">pkg_descr0</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription -&gt; PackageDescription
</span><a href="Distribution.PackageDescription.Configuration.html#flattenPackageDescription"><span class="hs-identifier hs-var">flattenPackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679732903"><span class="hs-identifier hs-var">ppd</span></a></span><span>
</span><span id="line-388"></span><span>    </span><span class="hs-comment">-- We don't sanity check for clean as an error</span><span>
</span><span id="line-389"></span><span>    </span><span class="hs-comment">-- here would prevent cleaning:</span><span>
</span><span id="line-390"></span><span>    </span><span class="hs-comment">--sanityCheckHookedBuildInfo verbosity pkg_descr0 pbi</span><span>
</span><span id="line-391"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732900"><span class="annot"><span class="annottext">pkg_descr :: PackageDescription
</span><a href="#local-6989586621679732900"><span class="hs-identifier hs-var hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; PackageDescription -&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-var">updatePackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732905"><span class="hs-identifier hs-var">pbi</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732902"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span>
</span><span id="line-392"></span><span>
</span><span id="line-393"></span><span>    </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription -&gt; () -&gt; UserHooks -&gt; CleanFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#cleanHook"><span class="hs-identifier hs-var hs-var">cleanHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732900"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732908"><span class="hs-identifier hs-var">flags'</span></a></span><span>
</span><span id="line-394"></span><span>    </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String] -&gt; CleanFlags -&gt; PackageDescription -&gt; () -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postClean"><span class="hs-identifier hs-var hs-var">postClean</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732918"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732916"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732908"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732900"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-395"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-396"></span><span>    </span><span id="local-6989586621679732911"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732911"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#cleanVerbosity"><span class="hs-identifier hs-var hs-var">cleanVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732917"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-397"></span><span>
</span><span id="line-398"></span><span class="annot"><a href="Distribution.Simple.html#copyAction"><span class="hs-identifier hs-type">copyAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CopyFlags"><span class="hs-identifier hs-type">CopyFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-399"></span><span id="copyAction"><span class="annot"><span class="annottext">copyAction :: UserHooks -&gt; CopyFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#copyAction"><span class="hs-identifier hs-var hs-var">copyAction</span></a></span></span><span> </span><span id="local-6989586621679732894"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732894"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732893"><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732893"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732892"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732892"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-400"></span><span>    </span><span id="local-6989586621679732891"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732891"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CopyFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#copyDistPref"><span class="hs-identifier hs-var hs-var">copyDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732893"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-401"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732887"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732887"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#copyVerbosity"><span class="hs-identifier hs-var hs-var">copyVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732893"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-402"></span><span>    </span><span id="local-6989586621679732885"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732885"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732894"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732887"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732891"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-403"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732884"><span class="annot"><span class="annottext">flags' :: CopyFlags
</span><a href="#local-6989586621679732884"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732893"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">copyDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#copyDistPref"><span class="hs-identifier hs-var">copyDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732891"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-404"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">copyCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#copyCabalFilePath"><span class="hs-identifier hs-var">copyCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732885"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-405"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; CopyFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; CopyFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; CopyFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; CopyFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732887"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; CopyFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preCopy"><span class="hs-identifier hs-var hs-var">preCopy</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; CopyFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#copyHook"><span class="hs-identifier hs-var hs-var">copyHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; CopyFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postCopy"><span class="hs-identifier hs-var hs-var">postCopy</span></a></span><span>
</span><span id="line-406"></span><span>                 </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732894"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732887"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732891"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-407"></span><span>                 </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732894"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732884"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">copyArgs :: [String]
</span><a href="Distribution.Simple.Setup.html#copyArgs"><span class="hs-identifier hs-var">copyArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732892"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732892"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-408"></span><span>
</span><span id="line-409"></span><span class="annot"><a href="Distribution.Simple.html#installAction"><span class="hs-identifier hs-type">installAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#InstallFlags"><span class="hs-identifier hs-type">InstallFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-410"></span><span id="installAction"><span class="annot"><span class="annottext">installAction :: UserHooks -&gt; InstallFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#installAction"><span class="hs-identifier hs-var hs-var">installAction</span></a></span></span><span> </span><span id="local-6989586621679732878"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732878"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732877"><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732877"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732876"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732876"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-411"></span><span>    </span><span id="local-6989586621679732875"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732875"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#installDistPref"><span class="hs-identifier hs-var hs-var">installDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732877"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-412"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732871"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732871"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#installVerbosity"><span class="hs-identifier hs-var hs-var">installVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732877"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-413"></span><span>    </span><span id="local-6989586621679732869"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732869"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732878"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732871"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732875"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-414"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732868"><span class="annot"><span class="annottext">flags' :: InstallFlags
</span><a href="#local-6989586621679732868"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732877"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">installDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#installDistPref"><span class="hs-identifier hs-var">installDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732875"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-415"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">installCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#installCabalFilePath"><span class="hs-identifier hs-var">installCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732869"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-416"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; InstallFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; InstallFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; InstallFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; InstallFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732871"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; InstallFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preInst"><span class="hs-identifier hs-var hs-var">preInst</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; InstallFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#instHook"><span class="hs-identifier hs-var hs-var">instHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; InstallFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postInst"><span class="hs-identifier hs-var hs-var">postInst</span></a></span><span>
</span><span id="line-417"></span><span>                 </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732878"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732871"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732875"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-418"></span><span>                 </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732878"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732868"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732876"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-419"></span><span>
</span><span id="line-420"></span><span class="hs-comment">-- Since Cabal-3.4 UserHooks are completely ignored</span><span>
</span><span id="line-421"></span><span class="annot"><a href="Distribution.Simple.html#sdistAction"><span class="hs-identifier hs-type">sdistAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#SDistFlags"><span class="hs-identifier hs-type">SDistFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-422"></span><span id="sdistAction"><span class="annot"><span class="annottext">sdistAction :: UserHooks -&gt; SDistFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#sdistAction"><span class="hs-identifier hs-var hs-var">sdistAction</span></a></span></span><span> </span><span id="local-6989586621679732863"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732863"><span class="hs-identifier hs-var">_hooks</span></a></span></span><span> </span><span id="local-6989586621679732862"><span class="annot"><span class="annottext">SDistFlags
</span><a href="#local-6989586621679732862"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732861"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732861"><span class="hs-identifier hs-var">_args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-423"></span><span>    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe String
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732860"><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679732860"><span class="hs-identifier hs-var">ppd</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; Verbosity
-&gt; Maybe String
-&gt; IO (Maybe String, GenericPackageDescription)
</span><a href="Distribution.Simple.html#confPkgDescr"><span class="hs-identifier hs-var">confPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.UserHooks.html#emptyUserHooks"><span class="hs-identifier hs-var">emptyUserHooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732859"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe String
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-424"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732858"><span class="annot"><span class="annottext">pkg_descr :: PackageDescription
</span><a href="#local-6989586621679732858"><span class="hs-identifier hs-var hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription -&gt; PackageDescription
</span><a href="Distribution.PackageDescription.Configuration.html#flattenPackageDescription"><span class="hs-identifier hs-var">flattenPackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">GenericPackageDescription
</span><a href="#local-6989586621679732860"><span class="hs-identifier hs-var">ppd</span></a></span><span>
</span><span id="line-425"></span><span>    </span><span class="annot"><span class="annottext">PackageDescription
-&gt; SDistFlags -&gt; (String -&gt; String) -&gt; [PPSuffixHandler] -&gt; IO ()
</span><a href="Distribution.Simple.SrcDist.html#sdist"><span class="hs-identifier hs-var">sdist</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732858"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">SDistFlags
</span><a href="#local-6989586621679732862"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="Distribution.Simple.BuildPaths.html#srcPref"><span class="hs-identifier hs-var">srcPref</span></a></span><span> </span><span class="annot"><span class="annottext">[PPSuffixHandler]
</span><a href="Distribution.Simple.PreProcess.html#knownSuffixHandlers"><span class="hs-identifier hs-var">knownSuffixHandlers</span></a></span><span>
</span><span id="line-426"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-427"></span><span>    </span><span id="local-6989586621679732859"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732859"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDistFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#sDistVerbosity"><span class="hs-identifier hs-var hs-var">sDistVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">SDistFlags
</span><a href="#local-6989586621679732862"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-428"></span><span>
</span><span id="line-429"></span><span class="annot"><a href="Distribution.Simple.html#testAction"><span class="hs-identifier hs-type">testAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#TestFlags"><span class="hs-identifier hs-type">TestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-430"></span><span id="testAction"><span class="annot"><span class="annottext">testAction :: UserHooks -&gt; TestFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#testAction"><span class="hs-identifier hs-var hs-var">testAction</span></a></span></span><span> </span><span id="local-6989586621679732852"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732852"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732851"><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732851"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732850"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732850"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-431"></span><span>    </span><span id="local-6989586621679732849"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732849"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TestFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#testDistPref"><span class="hs-identifier hs-var hs-var">testDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732851"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-432"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732845"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732845"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">TestFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#testVerbosity"><span class="hs-identifier hs-var hs-var">testVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732851"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-433"></span><span>        </span><span id="local-6989586621679732843"><span class="annot"><span class="annottext">flags' :: TestFlags
</span><a href="#local-6989586621679732843"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732851"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">testDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#testDistPref"><span class="hs-identifier hs-var">testDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732849"><span class="hs-identifier hs-var">distPref</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-434"></span><span>
</span><span id="line-435"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; TestFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; TestFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; TestFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedActionWithArgs"><span class="hs-identifier hs-var">hookedActionWithArgs</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732845"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; TestFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preTest"><span class="hs-identifier hs-var hs-var">preTest</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#testHook"><span class="hs-identifier hs-var hs-var">testHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; TestFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postTest"><span class="hs-identifier hs-var hs-var">postTest</span></a></span><span>
</span><span id="line-436"></span><span>            </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732852"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732845"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732849"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-437"></span><span>            </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732852"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732843"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732850"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-438"></span><span>
</span><span id="line-439"></span><span class="annot"><a href="Distribution.Simple.html#benchAction"><span class="hs-identifier hs-type">benchAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BenchmarkFlags"><span class="hs-identifier hs-type">BenchmarkFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-440"></span><span id="benchAction"><span class="annot"><span class="annottext">benchAction :: UserHooks -&gt; BenchmarkFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#benchAction"><span class="hs-identifier hs-var hs-var">benchAction</span></a></span></span><span> </span><span id="local-6989586621679732838"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732838"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732837"><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732837"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732836"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732836"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-441"></span><span>    </span><span id="local-6989586621679732835"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732835"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BenchmarkFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#benchmarkDistPref"><span class="hs-identifier hs-var hs-var">benchmarkDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732837"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-442"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732831"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732831"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">BenchmarkFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#benchmarkVerbosity"><span class="hs-identifier hs-var hs-var">benchmarkVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732837"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-443"></span><span>        </span><span id="local-6989586621679732829"><span class="annot"><span class="annottext">flags' :: BenchmarkFlags
</span><a href="#local-6989586621679732829"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732837"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">benchmarkDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#benchmarkDistPref"><span class="hs-identifier hs-var">benchmarkDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732835"><span class="hs-identifier hs-var">distPref</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-444"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; BenchmarkFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; BenchmarkFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; BenchmarkFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedActionWithArgs"><span class="hs-identifier hs-var">hookedActionWithArgs</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732831"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; BenchmarkFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBench"><span class="hs-identifier hs-var hs-var">preBench</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#benchHook"><span class="hs-identifier hs-var hs-var">benchHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; BenchmarkFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBench"><span class="hs-identifier hs-var hs-var">postBench</span></a></span><span>
</span><span id="line-445"></span><span>            </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732838"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732831"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732835"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-446"></span><span>            </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732838"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732829"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732836"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-447"></span><span>
</span><span id="line-448"></span><span class="annot"><a href="Distribution.Simple.html#registerAction"><span class="hs-identifier hs-type">registerAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-449"></span><span id="registerAction"><span class="annot"><span class="annottext">registerAction :: UserHooks -&gt; RegisterFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#registerAction"><span class="hs-identifier hs-var hs-var">registerAction</span></a></span></span><span> </span><span id="local-6989586621679732825"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732825"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732824"><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732824"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732823"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732823"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-450"></span><span>    </span><span id="local-6989586621679732822"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732822"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var hs-var">regDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732824"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-451"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732818"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732818"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#regVerbosity"><span class="hs-identifier hs-var hs-var">regVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732824"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-452"></span><span>    </span><span id="local-6989586621679732816"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732816"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732825"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732818"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732822"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-453"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732815"><span class="annot"><span class="annottext">flags' :: RegisterFlags
</span><a href="#local-6989586621679732815"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732824"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">regDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var">regDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732822"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-454"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">regCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#regCabalFilePath"><span class="hs-identifier hs-var">regCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732816"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-455"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; RegisterFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; RegisterFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; RegisterFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; RegisterFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732818"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preReg"><span class="hs-identifier hs-var hs-var">preReg</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; RegisterFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#regHook"><span class="hs-identifier hs-var hs-var">regHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; RegisterFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postReg"><span class="hs-identifier hs-var hs-var">postReg</span></a></span><span>
</span><span id="line-456"></span><span>                 </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732825"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732818"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732822"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-457"></span><span>                 </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732825"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732815"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">regArgs :: [String]
</span><a href="Distribution.Simple.Setup.html#regArgs"><span class="hs-identifier hs-var">regArgs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732823"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732823"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-458"></span><span>
</span><span id="line-459"></span><span class="annot"><a href="Distribution.Simple.html#unregisterAction"><span class="hs-identifier hs-type">unregisterAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-460"></span><span id="unregisterAction"><span class="annot"><span class="annottext">unregisterAction :: UserHooks -&gt; RegisterFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#unregisterAction"><span class="hs-identifier hs-var hs-var">unregisterAction</span></a></span></span><span> </span><span id="local-6989586621679732809"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732809"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732808"><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732808"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732807"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732807"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-461"></span><span>    </span><span id="local-6989586621679732806"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732806"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var hs-var">regDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732808"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-462"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732803"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732803"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag Verbosity -&gt; Verbosity) -&gt; Flag Verbosity -&gt; Verbosity
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#regVerbosity"><span class="hs-identifier hs-var hs-var">regVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732808"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-463"></span><span>    </span><span id="local-6989586621679732802"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732802"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732809"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732803"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732806"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-464"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732801"><span class="annot"><span class="annottext">flags' :: RegisterFlags
</span><a href="#local-6989586621679732801"><span class="hs-identifier hs-var hs-var">flags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732808"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">regDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var">regDistPref</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#toFlag"><span class="hs-identifier hs-var">toFlag</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732806"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-465"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">regCabalFilePath :: Flag String
</span><a href="Distribution.Simple.Setup.html#regCabalFilePath"><span class="hs-identifier hs-var">regCabalFilePath</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; Flag String
forall a. Maybe a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#maybeToFlag"><span class="hs-identifier hs-var">maybeToFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732802"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-466"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; RegisterFlags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; RegisterFlags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; RegisterFlags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; RegisterFlags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var">hookedAction</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732803"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preUnreg"><span class="hs-identifier hs-var hs-var">preUnreg</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; RegisterFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#unregHook"><span class="hs-identifier hs-var hs-var">unregHook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; RegisterFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postUnreg"><span class="hs-identifier hs-var hs-var">postUnreg</span></a></span><span>
</span><span id="line-467"></span><span>                 </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732809"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732803"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732806"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-468"></span><span>                 </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732809"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732801"><span class="hs-identifier hs-var">flags'</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732807"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-469"></span><span>
</span><span id="line-470"></span><span id="local-6989586621679733398"><span class="annot"><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-type">hookedAction</span></a></span><span>
</span><span id="line-471"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span>
</span><span id="line-472"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733398"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-473"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-474"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733398"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-475"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733398"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span>
</span><span id="line-476"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-477"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-478"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733398"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span>
</span><span id="line-479"></span><span id="hookedAction"><span class="annot"><span class="annottext">hookedAction :: forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedAction"><span class="hs-identifier hs-var hs-var">hookedAction</span></a></span></span><span> </span><span id="local-6989586621679732797"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732797"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679732796"><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732796"><span class="hs-identifier hs-var">pre_hook</span></a></span></span><span> </span><span id="local-6989586621679732795"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; IO ()
</span><a href="#local-6989586621679732795"><span class="hs-identifier hs-var">cmd_hook</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-480"></span><span>    </span><span class="annot"><span class="annottext">Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedActionWithArgs"><span class="hs-identifier hs-var">hookedActionWithArgs</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732797"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732796"><span class="hs-identifier hs-var">pre_hook</span></a></span><span>
</span><span id="line-481"></span><span>    </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679732794"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732794"><span class="hs-identifier hs-var">h</span></a></span></span><span> </span><span class="annot"><span class="annottext">[String]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732793"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732793"><span class="hs-identifier hs-var">pd</span></a></span></span><span> </span><span id="local-6989586621679732792"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732792"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span id="local-6989586621679732791"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732791"><span class="hs-identifier hs-var">uh</span></a></span></span><span> </span><span id="local-6989586621679732790"><span class="annot"><span class="annottext">flags
</span><a href="#local-6989586621679732790"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-482"></span><span>        </span><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; IO ()
</span><a href="#local-6989586621679732795"><span class="hs-identifier hs-var">cmd_hook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732794"><span class="hs-identifier hs-var">h</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732793"><span class="hs-identifier hs-var">pd</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732792"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732791"><span class="hs-identifier hs-var">uh</span></a></span><span> </span><span class="annot"><span class="annottext">flags
</span><a href="#local-6989586621679732790"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-483"></span><span>
</span><span id="line-484"></span><span id="local-6989586621679733395"><span class="annot"><a href="Distribution.Simple.html#hookedActionWithArgs"><span class="hs-identifier hs-type">hookedActionWithArgs</span></a></span><span>
</span><span id="line-485"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span>
</span><span id="line-486"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733395"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-487"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-488"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733395"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-489"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733395"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span>
</span><span id="line-490"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-491"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-492"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733395"><span class="hs-identifier hs-type">flags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span>
</span><span id="line-493"></span><span id="hookedActionWithArgs"><span class="annot"><span class="annottext">hookedActionWithArgs :: forall flags.
Verbosity
-&gt; (UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo)
-&gt; (UserHooks
    -&gt; [String]
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; flags
    -&gt; IO ())
-&gt; (UserHooks
    -&gt; [String]
    -&gt; flags
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; IO ())
-&gt; IO LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.html#hookedActionWithArgs"><span class="hs-identifier hs-var hs-var">hookedActionWithArgs</span></a></span></span><span> </span><span id="local-6989586621679732785"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732785"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679732784"><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732784"><span class="hs-identifier hs-var">pre_hook</span></a></span></span><span> </span><span id="local-6989586621679732783"><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; IO ()
</span><a href="#local-6989586621679732783"><span class="hs-identifier hs-var">cmd_hook</span></a></span></span><span> </span><span id="local-6989586621679732782"><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; flags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="#local-6989586621679732782"><span class="hs-identifier hs-var">post_hook</span></a></span></span><span>
</span><span id="line-494"></span><span>  </span><span id="local-6989586621679732781"><span class="annot"><span class="annottext">IO LocalBuildInfo
</span><a href="#local-6989586621679732781"><span class="hs-identifier hs-var">get_build_config</span></a></span></span><span> </span><span id="local-6989586621679732780"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732780"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732779"><span class="annot"><span class="annottext">flags
</span><a href="#local-6989586621679732779"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732778"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732778"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-495"></span><span>   </span><span id="local-6989586621679732777"><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732777"><span class="hs-identifier hs-var">pbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [String] -&gt; flags -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732784"><span class="hs-identifier hs-var">pre_hook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732780"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732778"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">flags
</span><a href="#local-6989586621679732779"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-496"></span><span>   </span><span id="local-6989586621679732776"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732776"><span class="hs-identifier hs-var">lbi0</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IO LocalBuildInfo
</span><a href="#local-6989586621679732781"><span class="hs-identifier hs-var">get_build_config</span></a></span><span>
</span><span id="line-497"></span><span>   </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732775"><span class="annot"><span class="annottext">pkg_descr0 :: PackageDescription
</span><a href="#local-6989586621679732775"><span class="hs-identifier hs-var hs-var">pkg_descr0</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var hs-var">localPkgDescr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732776"><span class="hs-identifier hs-var">lbi0</span></a></span><span>
</span><span id="line-498"></span><span>   </span><span class="annot"><span class="annottext">Verbosity -&gt; PackageDescription -&gt; HookedBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-var">sanityCheckHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732785"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732775"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732777"><span class="hs-identifier hs-var">pbi</span></a></span><span>
</span><span id="line-499"></span><span>   </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732774"><span class="annot"><span class="annottext">pkg_descr :: PackageDescription
</span><a href="#local-6989586621679732774"><span class="hs-identifier hs-var hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; PackageDescription -&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-var">updatePackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732777"><span class="hs-identifier hs-var">pbi</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732775"><span class="hs-identifier hs-var">pkg_descr0</span></a></span><span>
</span><span id="line-500"></span><span>       </span><span id="local-6989586621679732773"><span class="annot"><span class="annottext">lbi :: LocalBuildInfo
</span><a href="#local-6989586621679732773"><span class="hs-identifier hs-var hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732776"><span class="hs-identifier hs-var">lbi0</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">localPkgDescr :: PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var">localPkgDescr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732774"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-501"></span><span>   </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; flags
-&gt; IO ()
</span><a href="#local-6989586621679732783"><span class="hs-identifier hs-var">cmd_hook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732780"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732778"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732774"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732773"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732780"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">flags
</span><a href="#local-6989586621679732779"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-502"></span><span>   </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; flags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="#local-6989586621679732782"><span class="hs-identifier hs-var">post_hook</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732780"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732778"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">flags
</span><a href="#local-6989586621679732779"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732774"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732773"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-503"></span><span>
</span><span id="line-504"></span><span class="annot"><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-type">sanityCheckHookedBuildInfo</span></a></span><span>
</span><span id="line-505"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-506"></span><span id="sanityCheckHookedBuildInfo"><span class="annot"><span class="annottext">sanityCheckHookedBuildInfo :: Verbosity -&gt; PackageDescription -&gt; HookedBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-var hs-var">sanityCheckHookedBuildInfo</span></a></span></span><span> </span><span id="local-6989586621679732772"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732772"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span>
</span><span id="line-507"></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">library :: PackageDescription -&gt; Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var">library</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Library
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-508"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
forall a. Verbosity -&gt; String -&gt; IO a
</span><a href="Distribution.Simple.Utils.html#die%27"><span class="hs-identifier hs-var">die'</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732772"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;The buildinfo contains info for a library, &quot;</span></span><span>
</span><span id="line-509"></span><span>      </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;but the package does not have a library.&quot;</span></span><span>
</span><span id="line-510"></span><span>
</span><span id="line-511"></span><span class="annot"><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-var">sanityCheckHookedBuildInfo</span></a></span><span> </span><span id="local-6989586621679732768"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732768"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679732767"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732767"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe BuildInfo
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732766"><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><a href="#local-6989586621679732766"><span class="hs-identifier hs-var">hookExes</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-512"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679732765"><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679732765"><span class="hs-identifier hs-var">exe1</span></a></span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName]
</span><a href="#local-6989586621679732764"><span class="hs-identifier hs-var">nonExistant</span></a></span><span>
</span><span id="line-513"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
forall a. Verbosity -&gt; String -&gt; IO a
</span><a href="Distribution.Simple.Utils.html#die%27"><span class="hs-identifier hs-var">die'</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732768"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;The buildinfo contains info for an executable called '&quot;</span></span><span>
</span><span id="line-514"></span><span>      </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679732765"><span class="hs-identifier hs-var">exe1</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;' but the package does not have a &quot;</span></span><span>
</span><span id="line-515"></span><span>      </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;executable with that name.&quot;</span></span><span>
</span><span id="line-516"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-517"></span><span>    </span><span id="local-6989586621679732761"><span class="annot"><span class="annottext">pkgExeNames :: [UnqualComponentName]
</span><a href="#local-6989586621679732761"><span class="hs-identifier hs-var hs-var">pkgExeNames</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName] -&gt; [UnqualComponentName]
forall a. Eq a =&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#nub"><span class="hs-identifier hs-var">nub</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Executable -&gt; UnqualComponentName)
-&gt; [Executable] -&gt; [UnqualComponentName]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Executable -&gt; UnqualComponentName
</span><a href="Distribution.Types.Executable.html#exeName"><span class="hs-identifier hs-var hs-var">exeName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732767"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-518"></span><span>    </span><span id="local-6989586621679732756"><span class="annot"><span class="annottext">hookExeNames :: [UnqualComponentName]
</span><a href="#local-6989586621679732756"><span class="hs-identifier hs-var hs-var">hookExeNames</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName] -&gt; [UnqualComponentName]
forall a. Eq a =&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#nub"><span class="hs-identifier hs-var">nub</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((UnqualComponentName, BuildInfo) -&gt; UnqualComponentName)
-&gt; [(UnqualComponentName, BuildInfo)] -&gt; [UnqualComponentName]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName, BuildInfo) -&gt; UnqualComponentName
forall a b. (a, b) -&gt; a
</span><a href="../../base/src/Data.Tuple.html#fst"><span class="hs-identifier hs-var">fst</span></a></span><span> </span><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><a href="#local-6989586621679732766"><span class="hs-identifier hs-var">hookExes</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-519"></span><span>    </span><span id="local-6989586621679732764"><span class="annot"><span class="annottext">nonExistant :: [UnqualComponentName]
</span><a href="#local-6989586621679732764"><span class="hs-identifier hs-var hs-var">nonExistant</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName]
</span><a href="#local-6989586621679732756"><span class="hs-identifier hs-var">hookExeNames</span></a></span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName]
-&gt; [UnqualComponentName] -&gt; [UnqualComponentName]
forall a. Eq a =&gt; [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#%5C%5C"><span class="hs-operator hs-var">\\</span></a></span><span> </span><span class="annot"><span class="annottext">[UnqualComponentName]
</span><a href="#local-6989586621679732761"><span class="hs-identifier hs-var">pkgExeNames</span></a></span><span>
</span><span id="line-520"></span><span>
</span><span id="line-521"></span><span class="annot"><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-var">sanityCheckHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">() -&gt; IO ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-522"></span><span>
</span><span id="line-523"></span><span class="hs-comment">-- | Try to read the 'localBuildInfoFile'</span><span>
</span><span id="line-524"></span><span class="annot"><a href="Distribution.Simple.html#tryGetBuildConfig"><span class="hs-identifier hs-type">tryGetBuildConfig</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span>
</span><span id="line-525"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="Distribution.Simple.Configure.html#ConfigStateFileError"><span class="hs-identifier hs-type">ConfigStateFileError</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-526"></span><span id="tryGetBuildConfig"><span class="annot"><span class="annottext">tryGetBuildConfig :: UserHooks
-&gt; Verbosity
-&gt; String
-&gt; IO (Either ConfigStateFileError LocalBuildInfo)
</span><a href="Distribution.Simple.html#tryGetBuildConfig"><span class="hs-identifier hs-var hs-var">tryGetBuildConfig</span></a></span></span><span> </span><span id="local-6989586621679732754"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732754"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span id="local-6989586621679732753"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732753"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO LocalBuildInfo
-&gt; IO (Either ConfigStateFileError LocalBuildInfo)
forall e a. Exception e =&gt; IO a -&gt; IO (Either e a)
</span><a href="../../base/src/Control.Exception.Base.html#try"><span class="hs-identifier hs-var">try</span></a></span><span> </span><span class="annot"><span class="annottext">(IO LocalBuildInfo
 -&gt; IO (Either ConfigStateFileError LocalBuildInfo))
-&gt; (String -&gt; IO LocalBuildInfo)
-&gt; String
-&gt; IO (Either ConfigStateFileError LocalBuildInfo)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var">getBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732754"><span class="hs-identifier hs-var">u</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732753"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-527"></span><span>
</span><span id="line-528"></span><span>
</span><span id="line-529"></span><span class="hs-comment">-- | Read the 'localBuildInfoFile' or throw an exception.</span><span>
</span><span id="line-530"></span><span class="annot"><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-type">getBuildConfig</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-531"></span><span id="getBuildConfig"><span class="annot"><span class="annottext">getBuildConfig :: UserHooks -&gt; Verbosity -&gt; String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#getBuildConfig"><span class="hs-identifier hs-var hs-var">getBuildConfig</span></a></span></span><span> </span><span id="local-6989586621679732752"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732752"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732751"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732751"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679732750"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732750"><span class="hs-identifier hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-532"></span><span>  </span><span id="local-6989586621679732749"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732749"><span class="hs-identifier hs-var">lbi_wo_programs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.Configure.html#getPersistBuildConfig"><span class="hs-identifier hs-var">getPersistBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732750"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-533"></span><span>  </span><span class="hs-comment">-- Restore info about unconfigured programs, since it is not serialized</span><span>
</span><span id="line-534"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732747"><span class="annot"><span class="annottext">lbi :: LocalBuildInfo
</span><a href="#local-6989586621679732747"><span class="hs-identifier hs-var hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732749"><span class="hs-identifier hs-var">lbi_wo_programs</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-535"></span><span>    </span><span class="annot"><span class="annottext">withPrograms :: ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var">withPrograms</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Program] -&gt; ProgramDb -&gt; ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#restoreProgramDb"><span class="hs-identifier hs-var">restoreProgramDb</span></a></span><span>
</span><span id="line-536"></span><span>                     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Program]
</span><a href="Distribution.Simple.Program.Builtin.html#builtinPrograms"><span class="hs-identifier hs-var">builtinPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">[Program] -&gt; [Program] -&gt; [Program]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [Program]
</span><a href="Distribution.Simple.UserHooks.html#hookedPrograms"><span class="hs-identifier hs-var hs-var">hookedPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732752"><span class="hs-identifier hs-var">hooks</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-537"></span><span>                     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732749"><span class="hs-identifier hs-var">lbi_wo_programs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-538"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-539"></span><span>
</span><span id="line-540"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#pkgDescrFile"><span class="hs-identifier hs-var hs-var">pkgDescrFile</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732747"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-541"></span><span>    </span><span class="annot"><span class="annottext">Maybe String
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732747"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-542"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679732744"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732744"><span class="hs-identifier hs-var">pkg_descr_file</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-543"></span><span>      </span><span id="local-6989586621679732743"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732743"><span class="hs-identifier hs-var">outdated</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; IO Bool
</span><a href="Distribution.Simple.Configure.html#checkPersistBuildConfigOutdated"><span class="hs-identifier hs-var">checkPersistBuildConfigOutdated</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732750"><span class="hs-identifier hs-var">distPref</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732744"><span class="hs-identifier hs-var">pkg_descr_file</span></a></span><span>
</span><span id="line-544"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732743"><span class="hs-identifier hs-var">outdated</span></a></span><span>
</span><span id="line-545"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; LocalBuildInfo -&gt; IO LocalBuildInfo
</span><a href="#local-6989586621679732741"><span class="hs-identifier hs-var">reconfigure</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732744"><span class="hs-identifier hs-var">pkg_descr_file</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732747"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-546"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732747"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-547"></span><span>
</span><span id="line-548"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-549"></span><span>    </span><span class="annot"><a href="#local-6989586621679732741"><span class="hs-identifier hs-type">reconfigure</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-550"></span><span>    </span><span id="local-6989586621679732741"><span class="annot"><span class="annottext">reconfigure :: String -&gt; LocalBuildInfo -&gt; IO LocalBuildInfo
</span><a href="#local-6989586621679732741"><span class="hs-identifier hs-var hs-var">reconfigure</span></a></span></span><span> </span><span id="local-6989586621679732740"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732740"><span class="hs-identifier hs-var">pkg_descr_file</span></a></span></span><span> </span><span id="local-6989586621679732739"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732739"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-551"></span><span>      </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#notice"><span class="hs-identifier hs-var">notice</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732751"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732740"><span class="hs-identifier hs-var">pkg_descr_file</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; has been changed. &quot;</span></span><span>
</span><span id="line-552"></span><span>                      </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Re-configuring with most recently used options. &quot;</span></span><span>
</span><span id="line-553"></span><span>                      </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;If this fails, please run configure manually.\n&quot;</span></span><span>
</span><span id="line-554"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732737"><span class="annot"><span class="annottext">cFlags :: ConfigFlags
</span><a href="#local-6989586621679732737"><span class="hs-identifier hs-var hs-var">cFlags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ConfigFlags
</span><a href="Distribution.Types.LocalBuildInfo.html#configFlags"><span class="hs-identifier hs-var hs-var">configFlags</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732739"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-555"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732731"><span class="annot"><span class="annottext">cFlags' :: ConfigFlags
</span><a href="#local-6989586621679732731"><span class="hs-identifier hs-var hs-var">cFlags'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732737"><span class="hs-identifier hs-var">cFlags</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-556"></span><span>            </span><span class="hs-comment">-- Since the list of unconfigured programs is not serialized,</span><span>
</span><span id="line-557"></span><span>            </span><span class="hs-comment">-- restore it to the same value as normally used at the beginning</span><span>
</span><span id="line-558"></span><span>            </span><span class="hs-comment">-- of a configure run:</span><span>
</span><span id="line-559"></span><span>            </span><span class="annot"><span class="annottext">configPrograms_ :: Option' (Last' ProgramDb)
</span><a href="Distribution.Simple.Setup.html#configPrograms_"><span class="hs-identifier hs-var">configPrograms_</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ProgramDb -&gt; ProgramDb) -&gt; Last' ProgramDb -&gt; Last' ProgramDb
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Program] -&gt; ProgramDb -&gt; ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#restoreProgramDb"><span class="hs-identifier hs-var">restoreProgramDb</span></a></span><span>
</span><span id="line-560"></span><span>                                      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Program]
</span><a href="Distribution.Simple.Program.Builtin.html#builtinPrograms"><span class="hs-identifier hs-var">builtinPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">[Program] -&gt; [Program] -&gt; [Program]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks -&gt; [Program]
</span><a href="Distribution.Simple.UserHooks.html#hookedPrograms"><span class="hs-identifier hs-var hs-var">hookedPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732752"><span class="hs-identifier hs-var">hooks</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-561"></span><span>                               </span><span class="annot"><span class="annottext">(Last' ProgramDb -&gt; Last' ProgramDb)
-&gt; Option' (Last' ProgramDb) -&gt; Option' (Last' ProgramDb)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-operator hs-var">`fmap`</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags -&gt; Option' (Last' ProgramDb)
</span><a href="Distribution.Simple.Setup.html#configPrograms_"><span class="hs-identifier hs-var hs-var">configPrograms_</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732737"><span class="hs-identifier hs-var">cFlags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-562"></span><span>
</span><span id="line-563"></span><span>            </span><span class="hs-comment">-- Use the current, not saved verbosity level:</span><span>
</span><span id="line-564"></span><span>            </span><span class="annot"><span class="annottext">configVerbosity :: Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#configVerbosity"><span class="hs-identifier hs-var">configVerbosity</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; Flag Verbosity
forall a. a -&gt; Flag a
</span><a href="Distribution.Simple.Flag.html#Flag"><span class="hs-identifier hs-var">Flag</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732751"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-565"></span><span>          </span><span class="hs-special">}</span><span>
</span><span id="line-566"></span><span>      </span><span class="annot"><span class="annottext">UserHooks -&gt; ConfigFlags -&gt; [String] -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.html#configureAction"><span class="hs-identifier hs-var">configureAction</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732752"><span class="hs-identifier hs-var">hooks</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732731"><span class="hs-identifier hs-var">cFlags'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; [String]
</span><a href="Distribution.Types.LocalBuildInfo.html#extraConfigArgs"><span class="hs-identifier hs-var hs-var">extraConfigArgs</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732739"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-567"></span><span>
</span><span id="line-568"></span><span>
</span><span id="line-569"></span><span class="hs-comment">-- --------------------------------------------------------------------------</span><span>
</span><span id="line-570"></span><span class="hs-comment">-- Cleaning</span><span>
</span><span id="line-571"></span><span>
</span><span id="line-572"></span><span class="annot"><a href="Distribution.Simple.html#clean"><span class="hs-identifier hs-type">clean</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CleanFlags"><span class="hs-identifier hs-type">CleanFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-573"></span><span id="clean"><span class="annot"><span class="annottext">clean :: PackageDescription -&gt; CleanFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#clean"><span class="hs-identifier hs-var hs-var">clean</span></a></span></span><span> </span><span id="local-6989586621679732727"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732727"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732726"><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732726"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-574"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732725"><span class="annot"><span class="annottext">distPref :: String
</span><a href="#local-6989586621679732725"><span class="hs-identifier hs-var hs-var">distPref</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Flag String -&gt; String
forall a. a -&gt; Flag a -&gt; a
</span><a href="Distribution.Simple.Flag.html#fromFlagOrDefault"><span class="hs-identifier hs-var">fromFlagOrDefault</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="Distribution.Simple.Setup.html#defaultDistPref"><span class="hs-identifier hs-var">defaultDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">(Flag String -&gt; String) -&gt; Flag String -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#cleanDistPref"><span class="hs-identifier hs-var hs-var">cleanDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732726"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-575"></span><span>    </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#notice"><span class="hs-identifier hs-var">notice</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732722"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cleaning...&quot;</span></span><span>
</span><span id="line-576"></span><span>
</span><span id="line-577"></span><span>    </span><span id="local-6989586621679732721"><span class="annot"><span class="annottext">Maybe LocalBuildInfo
</span><a href="#local-6989586621679732721"><span class="hs-identifier hs-var">maybeConfig</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Flag Bool -&gt; Bool
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag Bool
</span><a href="Distribution.Simple.Setup.html#cleanSaveConf"><span class="hs-identifier hs-var hs-var">cleanSaveConf</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732726"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-578"></span><span>                     </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO (Maybe LocalBuildInfo)
</span><a href="Distribution.Simple.Configure.html#maybeGetPersistBuildConfig"><span class="hs-identifier hs-var">maybeGetPersistBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732725"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-579"></span><span>                     </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Maybe LocalBuildInfo -&gt; IO (Maybe LocalBuildInfo)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe LocalBuildInfo
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-580"></span><span>
</span><span id="line-581"></span><span>    </span><span class="hs-comment">-- remove the whole dist/ directory rather than tracking exactly what files</span><span>
</span><span id="line-582"></span><span>    </span><span class="hs-comment">-- we created in there.</span><span>
</span><span id="line-583"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; IO () -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#chattyTry"><span class="hs-identifier hs-var">chattyTry</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;removing dist/&quot;</span></span><span> </span><span class="annot"><span class="annottext">(IO () -&gt; IO ()) -&gt; IO () -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-584"></span><span>      </span><span id="local-6989586621679732717"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732717"><span class="hs-identifier hs-var">exists</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO Bool
</span><a href="../../directory/src/System.Directory.html#doesDirectoryExist"><span class="hs-identifier hs-var">doesDirectoryExist</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732725"><span class="hs-identifier hs-var">distPref</span></a></span><span>
</span><span id="line-585"></span><span>      </span><span class="annot"><span class="annottext">Bool -&gt; IO () -&gt; IO ()
forall (f :: * -&gt; *). Applicative f =&gt; Bool -&gt; f () -&gt; f ()
</span><a href="../../base/src/GHC.Base.html#when"><span class="hs-identifier hs-var">when</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732717"><span class="hs-identifier hs-var">exists</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../directory/src/System.Directory.html#removeDirectoryRecursive"><span class="hs-identifier hs-var">removeDirectoryRecursive</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732725"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-586"></span><span>
</span><span id="line-587"></span><span>    </span><span class="hs-comment">-- Any extra files the user wants to remove</span><span>
</span><span id="line-588"></span><span>    </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; [String] -&gt; IO ()
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Foldable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f ()
</span><a href="../../base/src/Data.Foldable.html#traverse_"><span class="hs-identifier hs-var">traverse_</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="#local-6989586621679732714"><span class="hs-identifier hs-var">removeFileOrDirectory</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [String]
</span><a href="Distribution.Types.PackageDescription.html#extraTmpFiles"><span class="hs-identifier hs-var hs-var">extraTmpFiles</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732727"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-589"></span><span>
</span><span id="line-590"></span><span>    </span><span class="hs-comment">-- If the user wanted to save the config, write it back</span><span>
</span><span id="line-591"></span><span>    </span><span class="annot"><span class="annottext">(LocalBuildInfo -&gt; IO ()) -&gt; Maybe LocalBuildInfo -&gt; IO ()
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Foldable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f ()
</span><a href="../../base/src/Data.Foldable.html#traverse_"><span class="hs-identifier hs-var">traverse_</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.Configure.html#writePersistBuildConfig"><span class="hs-identifier hs-var">writePersistBuildConfig</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732725"><span class="hs-identifier hs-var">distPref</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe LocalBuildInfo
</span><a href="#local-6989586621679732721"><span class="hs-identifier hs-var">maybeConfig</span></a></span><span>
</span><span id="line-592"></span><span>
</span><span id="line-593"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-594"></span><span>        </span><span class="annot"><a href="#local-6989586621679732714"><span class="hs-identifier hs-type">removeFileOrDirectory</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-595"></span><span>        </span><span id="local-6989586621679732714"><span class="annot"><span class="annottext">removeFileOrDirectory :: String -&gt; IO ()
</span><a href="#local-6989586621679732714"><span class="hs-identifier hs-var hs-var">removeFileOrDirectory</span></a></span></span><span> </span><span id="local-6989586621679732712"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732712"><span class="hs-identifier hs-var">fname</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-596"></span><span>            </span><span id="local-6989586621679732711"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732711"><span class="hs-identifier hs-var">isDir</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO Bool
</span><a href="../../directory/src/System.Directory.html#doesDirectoryExist"><span class="hs-identifier hs-var">doesDirectoryExist</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732712"><span class="hs-identifier hs-var">fname</span></a></span><span>
</span><span id="line-597"></span><span>            </span><span id="local-6989586621679732710"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732710"><span class="hs-identifier hs-var">isFile</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO Bool
</span><a href="../../directory/src/System.Directory.html#doesFileExist"><span class="hs-identifier hs-var">doesFileExist</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732712"><span class="hs-identifier hs-var">fname</span></a></span><span>
</span><span id="line-598"></span><span>            </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732711"><span class="hs-identifier hs-var">isDir</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../directory/src/System.Directory.html#removeDirectoryRecursive"><span class="hs-identifier hs-var">removeDirectoryRecursive</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732712"><span class="hs-identifier hs-var">fname</span></a></span><span>
</span><span id="line-599"></span><span>              </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IO () -&gt; IO ()
forall (f :: * -&gt; *). Applicative f =&gt; Bool -&gt; f () -&gt; f ()
</span><a href="../../base/src/GHC.Base.html#when"><span class="hs-identifier hs-var">when</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732710"><span class="hs-identifier hs-var">isFile</span></a></span><span> </span><span class="annot"><span class="annottext">(IO () -&gt; IO ()) -&gt; IO () -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../directory/src/System.Directory.html#removeFile"><span class="hs-identifier hs-var">removeFile</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732712"><span class="hs-identifier hs-var">fname</span></a></span><span>
</span><span id="line-600"></span><span>        </span><span id="local-6989586621679732722"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732722"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#cleanVerbosity"><span class="hs-identifier hs-var hs-var">cleanVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732726"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-601"></span><span>
</span><span id="line-602"></span><span class="hs-comment">-- --------------------------------------------------------------------------</span><span>
</span><span id="line-603"></span><span class="hs-comment">-- Default hooks</span><span>
</span><span id="line-604"></span><span>
</span><span id="line-605"></span><span class="hs-comment">-- | Hooks that correspond to a plain instantiation of the</span><span>
</span><span id="line-606"></span><span class="hs-comment">-- \&quot;simple\&quot; build system</span><span>
</span><span id="line-607"></span><span class="annot"><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-type">simpleUserHooks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span>
</span><span id="line-608"></span><span id="simpleUserHooks"><span class="annot"><span class="annottext">simpleUserHooks :: UserHooks
</span><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-var hs-var">simpleUserHooks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-609"></span><span>    </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.UserHooks.html#emptyUserHooks"><span class="hs-identifier hs-var">emptyUserHooks</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-610"></span><span>       </span><span class="annot"><span class="annottext">confHook :: (GenericPackageDescription, HookedBuildInfo)
-&gt; ConfigFlags -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#confHook"><span class="hs-identifier hs-var">confHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenericPackageDescription, HookedBuildInfo)
-&gt; ConfigFlags -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.Configure.html#configure"><span class="hs-identifier hs-var">configure</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-611"></span><span>       </span><span class="annot"><span class="annottext">postConf :: [String]
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postConf"><span class="hs-identifier hs-var">postConf</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {p}.
p -&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="#local-6989586621679732706"><span class="hs-identifier hs-var">finalChecks</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-612"></span><span>       </span><span class="annot"><span class="annottext">buildHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; BuildFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#buildHook"><span class="hs-identifier hs-var">buildHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; BuildFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultBuildHook"><span class="hs-identifier hs-var">defaultBuildHook</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-613"></span><span>       </span><span class="annot"><span class="annottext">replHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; ReplFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#replHook"><span class="hs-identifier hs-var">replHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; ReplFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultReplHook"><span class="hs-identifier hs-var">defaultReplHook</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-614"></span><span>       </span><span class="annot"><span class="annottext">copyHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; CopyFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#copyHook"><span class="hs-identifier hs-var">copyHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679732703"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732703"><span class="hs-identifier hs-var">desc</span></a></span></span><span> </span><span id="local-6989586621679732702"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732702"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732701"><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732701"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; CopyFlags -&gt; IO ()
</span><a href="Distribution.Simple.Install.html#install"><span class="hs-identifier hs-var">install</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732703"><span class="hs-identifier hs-var">desc</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732702"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732701"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-615"></span><span>                   </span><span class="hs-comment">-- 'install' has correct 'copy' behavior with params</span><span>
</span><span id="line-616"></span><span>       </span><span class="annot"><span class="annottext">testHook :: [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#testHook"><span class="hs-identifier hs-var">testHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.html#defaultTestHook"><span class="hs-identifier hs-var">defaultTestHook</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-617"></span><span>       </span><span class="annot"><span class="annottext">benchHook :: [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#benchHook"><span class="hs-identifier hs-var">benchHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; IO ()
</span><a href="Distribution.Simple.html#defaultBenchHook"><span class="hs-identifier hs-var">defaultBenchHook</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-618"></span><span>       </span><span class="annot"><span class="annottext">instHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; InstallFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#instHook"><span class="hs-identifier hs-var">instHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; InstallFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultInstallHook"><span class="hs-identifier hs-var">defaultInstallHook</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-619"></span><span>       </span><span class="annot"><span class="annottext">cleanHook :: PackageDescription -&gt; () -&gt; UserHooks -&gt; CleanFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#cleanHook"><span class="hs-identifier hs-var">cleanHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679732696"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732696"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732695"><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732695"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; CleanFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#clean"><span class="hs-identifier hs-var">clean</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732696"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags
</span><a href="#local-6989586621679732695"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-620"></span><span>       </span><span class="annot"><span class="annottext">hscolourHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; HscolourFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#hscolourHook"><span class="hs-identifier hs-var">hscolourHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679732694"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732694"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679732693"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732693"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679732692"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732692"><span class="hs-identifier hs-var">h</span></a></span></span><span> </span><span id="local-6989586621679732691"><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732691"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; [PPSuffixHandler] -&gt; HscolourFlags -&gt; IO ()
</span><a href="Distribution.Simple.Haddock.html#hscolour"><span class="hs-identifier hs-var">hscolour</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732694"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732693"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-var">allSuffixHandlers</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732692"><span class="hs-identifier hs-var">h</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HscolourFlags
</span><a href="#local-6989586621679732691"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-621"></span><span>       </span><span class="annot"><span class="annottext">haddockHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; HaddockFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#haddockHook"><span class="hs-identifier hs-var">haddockHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679732689"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732689"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679732688"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732688"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679732687"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732687"><span class="hs-identifier hs-var">h</span></a></span></span><span> </span><span id="local-6989586621679732686"><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732686"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; [PPSuffixHandler] -&gt; HaddockFlags -&gt; IO ()
</span><a href="Distribution.Simple.Haddock.html#haddock"><span class="hs-identifier hs-var">haddock</span></a></span><span>  </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732689"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732688"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-var">allSuffixHandlers</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732687"><span class="hs-identifier hs-var">h</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">HaddockFlags
</span><a href="#local-6989586621679732686"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-622"></span><span>       </span><span class="annot"><span class="annottext">doctestHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; DoctestFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#doctestHook"><span class="hs-identifier hs-var">doctestHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679732684"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732684"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679732683"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732683"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679732682"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732682"><span class="hs-identifier hs-var">h</span></a></span></span><span> </span><span id="local-6989586621679732681"><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732681"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; [PPSuffixHandler] -&gt; DoctestFlags -&gt; IO ()
</span><a href="Distribution.Simple.Doctest.html#doctest"><span class="hs-identifier hs-var">doctest</span></a></span><span>  </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732684"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732683"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-var">allSuffixHandlers</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732682"><span class="hs-identifier hs-var">h</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">DoctestFlags
</span><a href="#local-6989586621679732681"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-623"></span><span>       </span><span class="annot"><span class="annottext">regHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#regHook"><span class="hs-identifier hs-var">regHook</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultRegHook"><span class="hs-identifier hs-var">defaultRegHook</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-624"></span><span>       </span><span class="annot"><span class="annottext">unregHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#unregHook"><span class="hs-identifier hs-var">unregHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679732678"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732678"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621679732677"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732677"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732676"><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732676"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.Register.html#unregister"><span class="hs-identifier hs-var">unregister</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732678"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732677"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732676"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-625"></span><span>      </span><span class="hs-special">}</span><span>
</span><span id="line-626"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-627"></span><span>    </span><span id="local-6989586621679732706"><span class="annot"><span class="annottext">finalChecks :: p -&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="#local-6989586621679732706"><span class="hs-identifier hs-var hs-var">finalChecks</span></a></span></span><span> </span><span id="local-6989586621679732674"><span class="annot"><span class="annottext">p
</span><a href="#local-6989586621679732674"><span class="hs-identifier hs-var">_args</span></a></span></span><span> </span><span id="local-6989586621679732673"><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732673"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732672"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732672"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732671"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732671"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-628"></span><span>      </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; Verbosity -&gt; IO ()
</span><a href="Distribution.Simple.Configure.html#checkForeignDeps"><span class="hs-identifier hs-var">checkForeignDeps</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732672"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732671"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Verbosity -&gt; Verbosity
</span><a href="Distribution.Verbosity.html#lessVerbose"><span class="hs-identifier hs-var">lessVerbose</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732668"><span class="hs-identifier hs-var">verbosity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-629"></span><span>      </span><span class="hs-keyword">where</span><span>
</span><span id="line-630"></span><span>        </span><span id="local-6989586621679732668"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732668"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfigFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#configVerbosity"><span class="hs-identifier hs-var hs-var">configVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732673"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-631"></span><span>
</span><span id="line-632"></span><span class="hs-comment">-- | Basic autoconf 'UserHooks':</span><span>
</span><span id="line-633"></span><span class="hs-comment">--</span><span>
</span><span id="line-634"></span><span class="hs-comment">-- * 'postConf' runs @.\/configure@, if present.</span><span>
</span><span id="line-635"></span><span class="hs-comment">--</span><span>
</span><span id="line-636"></span><span class="hs-comment">-- * the pre-hooks 'preBuild', 'preClean', 'preCopy', 'preInst',</span><span>
</span><span id="line-637"></span><span class="hs-comment">--   'preReg' and 'preUnreg' read additional build information from</span><span>
</span><span id="line-638"></span><span class="hs-comment">--   /package/@.buildinfo@, if present.</span><span>
</span><span id="line-639"></span><span class="hs-comment">--</span><span>
</span><span id="line-640"></span><span class="hs-comment">-- Thus @configure@ can use local system information to generate</span><span>
</span><span id="line-641"></span><span class="hs-comment">-- /package/@.buildinfo@ and possibly other files.</span><span>
</span><span id="line-642"></span><span>
</span><span id="line-643"></span><span class="annot"><a href="Distribution.Simple.html#autoconfUserHooks"><span class="hs-identifier hs-type">autoconfUserHooks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span>
</span><span id="line-644"></span><span id="autoconfUserHooks"><span class="annot"><span class="annottext">autoconfUserHooks :: UserHooks
</span><a href="Distribution.Simple.html#autoconfUserHooks"><span class="hs-identifier hs-var hs-var">autoconfUserHooks</span></a></span></span><span>
</span><span id="line-645"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-var">simpleUserHooks</span></a></span><span>
</span><span id="line-646"></span><span>      </span><span class="hs-special">{</span><span>
</span><span id="line-647"></span><span>       </span><span class="annot"><span class="annottext">postConf :: [String]
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postConf"><span class="hs-identifier hs-var">postConf</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[String]
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="#local-6989586621679732665"><span class="hs-identifier hs-var">defaultPostConf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-648"></span><span>       </span><span class="annot"><span class="annottext">preBuild :: [String] -&gt; BuildFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBuild"><span class="hs-identifier hs-var">preBuild</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(BuildFlags -&gt; Flag Verbosity)
-&gt; (BuildFlags -&gt; Flag String)
-&gt; [String]
-&gt; BuildFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732664"><span class="hs-identifier hs-var">readHookWithArgs</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#buildVerbosity"><span class="hs-identifier hs-var hs-var">buildVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#buildDistPref"><span class="hs-identifier hs-var hs-var">buildDistPref</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- buildCabalFilePath,</span><span>
</span><span id="line-649"></span><span>       </span><span class="annot"><span class="annottext">preCopy :: [String] -&gt; CopyFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preCopy"><span class="hs-identifier hs-var">preCopy</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(CopyFlags -&gt; Flag Verbosity)
-&gt; (CopyFlags -&gt; Flag String)
-&gt; [String]
-&gt; CopyFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732664"><span class="hs-identifier hs-var">readHookWithArgs</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#copyVerbosity"><span class="hs-identifier hs-var hs-var">copyVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#copyDistPref"><span class="hs-identifier hs-var hs-var">copyDistPref</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-650"></span><span>       </span><span class="annot"><span class="annottext">preClean :: [String] -&gt; CleanFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preClean"><span class="hs-identifier hs-var">preClean</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(CleanFlags -&gt; Flag Verbosity)
-&gt; (CleanFlags -&gt; Flag String)
-&gt; [String]
-&gt; CleanFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732663"><span class="hs-identifier hs-var">readHook</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#cleanVerbosity"><span class="hs-identifier hs-var hs-var">cleanVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">CleanFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#cleanDistPref"><span class="hs-identifier hs-var hs-var">cleanDistPref</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-651"></span><span>       </span><span class="annot"><span class="annottext">preInst :: [String] -&gt; InstallFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preInst"><span class="hs-identifier hs-var">preInst</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(InstallFlags -&gt; Flag Verbosity)
-&gt; (InstallFlags -&gt; Flag String)
-&gt; [String]
-&gt; InstallFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732663"><span class="hs-identifier hs-var">readHook</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#installVerbosity"><span class="hs-identifier hs-var hs-var">installVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#installDistPref"><span class="hs-identifier hs-var hs-var">installDistPref</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-652"></span><span>       </span><span class="annot"><span class="annottext">preHscolour :: [String] -&gt; HscolourFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHscolour"><span class="hs-identifier hs-var">preHscolour</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(HscolourFlags -&gt; Flag Verbosity)
-&gt; (HscolourFlags -&gt; Flag String)
-&gt; [String]
-&gt; HscolourFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732663"><span class="hs-identifier hs-var">readHook</span></a></span><span> </span><span class="annot"><span class="annottext">HscolourFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#hscolourVerbosity"><span class="hs-identifier hs-var hs-var">hscolourVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">HscolourFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#hscolourDistPref"><span class="hs-identifier hs-var hs-var">hscolourDistPref</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-653"></span><span>       </span><span class="annot"><span class="annottext">preHaddock :: [String] -&gt; HaddockFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHaddock"><span class="hs-identifier hs-var">preHaddock</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(HaddockFlags -&gt; Flag Verbosity)
-&gt; (HaddockFlags -&gt; Flag String)
-&gt; [String]
-&gt; HaddockFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732664"><span class="hs-identifier hs-var">readHookWithArgs</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#haddockVerbosity"><span class="hs-identifier hs-var hs-var">haddockVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">HaddockFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#haddockDistPref"><span class="hs-identifier hs-var hs-var">haddockDistPref</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-654"></span><span>       </span><span class="annot"><span class="annottext">preReg :: [String] -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preReg"><span class="hs-identifier hs-var">preReg</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(RegisterFlags -&gt; Flag Verbosity)
-&gt; (RegisterFlags -&gt; Flag String)
-&gt; [String]
-&gt; RegisterFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732663"><span class="hs-identifier hs-var">readHook</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#regVerbosity"><span class="hs-identifier hs-var hs-var">regVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var hs-var">regDistPref</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-655"></span><span>       </span><span class="annot"><span class="annottext">preUnreg :: [String] -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preUnreg"><span class="hs-identifier hs-var">preUnreg</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(RegisterFlags -&gt; Flag Verbosity)
-&gt; (RegisterFlags -&gt; Flag String)
-&gt; [String]
-&gt; RegisterFlags
-&gt; IO HookedBuildInfo
forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732663"><span class="hs-identifier hs-var">readHook</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#regVerbosity"><span class="hs-identifier hs-var hs-var">regVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var hs-var">regDistPref</span></a></span><span>
</span><span id="line-656"></span><span>      </span><span class="hs-special">}</span><span>
</span><span id="line-657"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span class="annot"><a href="#local-6989586621679732665"><span class="hs-identifier hs-type">defaultPostConf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span>
</span><span id="line-658"></span><span>                          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-659"></span><span>          </span><span id="local-6989586621679732665"><span class="annot"><span class="annottext">defaultPostConf :: [String]
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="#local-6989586621679732665"><span class="hs-identifier hs-var hs-var">defaultPostConf</span></a></span></span><span> </span><span id="local-6989586621679732662"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732662"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621679732661"><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732661"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732660"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732660"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732659"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732659"><span class="hs-identifier hs-var">lbi</span></a></span></span><span>
</span><span id="line-660"></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732656"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732656"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfigFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#configVerbosity"><span class="hs-identifier hs-var hs-var">configVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732661"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-661"></span><span>                       </span><span id="local-6989586621679732654"><span class="annot"><span class="annottext">baseDir :: LocalBuildInfo -&gt; String
</span><a href="#local-6989586621679732654"><span class="hs-identifier hs-var hs-var">baseDir</span></a></span></span><span> </span><span id="local-6989586621679732653"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732653"><span class="hs-identifier hs-var">lbi'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Maybe String -&gt; String
forall a. a -&gt; Maybe a -&gt; a
</span><a href="../../base/src/Data.Maybe.html#fromMaybe"><span class="hs-identifier hs-var">fromMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span>
</span><span id="line-662"></span><span>                                      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#takeDirectory"><span class="hs-identifier hs-var">takeDirectory</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; String) -&gt; Maybe String -&gt; Maybe String
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732653"><span class="hs-identifier hs-var">lbi'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-663"></span><span>                   </span><span id="local-6989586621679732650"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732650"><span class="hs-identifier hs-var">confExists</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO Bool
</span><a href="../../directory/src/System.Directory.html#doesFileExist"><span class="hs-identifier hs-var">doesFileExist</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO Bool) -&gt; String -&gt; IO Bool
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; String
</span><a href="#local-6989586621679732654"><span class="hs-identifier hs-var">baseDir</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732659"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#%3C%2F%3E"><span class="hs-operator hs-var">&lt;/&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;configure&quot;</span></span><span>
</span><span id="line-664"></span><span>                   </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732650"><span class="hs-identifier hs-var">confExists</span></a></span><span>
</span><span id="line-665"></span><span>                     </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; Bool -&gt; ConfigFlags -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.html#runConfigureScript"><span class="hs-identifier hs-var">runConfigureScript</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732656"><span class="hs-identifier hs-var">verbosity</span></a></span><span>
</span><span id="line-666"></span><span>                            </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732648"><span class="hs-identifier hs-var">backwardsCompatHack</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732661"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732659"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-667"></span><span>                     </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
forall a. Verbosity -&gt; String -&gt; IO a
</span><a href="Distribution.Simple.Utils.html#die%27"><span class="hs-identifier hs-var">die'</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732656"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;configure script not found.&quot;</span></span><span>
</span><span id="line-668"></span><span>
</span><span id="line-669"></span><span>                   </span><span id="local-6989586621679732647"><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732647"><span class="hs-identifier hs-var">pbi</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.html#getHookedBuildInfo"><span class="hs-identifier hs-var">getHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732656"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; String
</span><a href="Distribution.Types.LocalBuildInfo.html#buildDir"><span class="hs-identifier hs-var hs-var">buildDir</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732659"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-670"></span><span>                   </span><span class="annot"><span class="annottext">Verbosity -&gt; PackageDescription -&gt; HookedBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.html#sanityCheckHookedBuildInfo"><span class="hs-identifier hs-var">sanityCheckHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732656"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732660"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732647"><span class="hs-identifier hs-var">pbi</span></a></span><span>
</span><span id="line-671"></span><span>                   </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732644"><span class="annot"><span class="annottext">pkg_descr' :: PackageDescription
</span><a href="#local-6989586621679732644"><span class="hs-identifier hs-var hs-var">pkg_descr'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; PackageDescription -&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-var">updatePackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="#local-6989586621679732647"><span class="hs-identifier hs-var">pbi</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732660"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-672"></span><span>                       </span><span id="local-6989586621679732643"><span class="annot"><span class="annottext">lbi' :: LocalBuildInfo
</span><a href="#local-6989586621679732643"><span class="hs-identifier hs-var hs-var">lbi'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732659"><span class="hs-identifier hs-var">lbi</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">localPkgDescr :: PackageDescription
</span><a href="Distribution.Types.LocalBuildInfo.html#localPkgDescr"><span class="hs-identifier hs-var">localPkgDescr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732644"><span class="hs-identifier hs-var">pkg_descr'</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-673"></span><span>                   </span><span class="annot"><span class="annottext">UserHooks
-&gt; [String]
-&gt; ConfigFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postConf"><span class="hs-identifier hs-var hs-var">postConf</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="Distribution.Simple.html#simpleUserHooks"><span class="hs-identifier hs-var">simpleUserHooks</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732662"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732661"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732644"><span class="hs-identifier hs-var">pkg_descr'</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732643"><span class="hs-identifier hs-var">lbi'</span></a></span><span>
</span><span id="line-674"></span><span>
</span><span id="line-675"></span><span>          </span><span id="local-6989586621679732648"><span class="annot"><span class="annottext">backwardsCompatHack :: Bool
</span><a href="#local-6989586621679732648"><span class="hs-identifier hs-var hs-var">backwardsCompatHack</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-676"></span><span>
</span><span id="line-677"></span><span>          </span><span id="local-6989586621679733370"><span class="annot"><a href="#local-6989586621679732664"><span class="hs-identifier hs-type">readHookWithArgs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679733370"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Flag.html#Flag"><span class="hs-identifier hs-type">Flag</span></a></span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-678"></span><span>                           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679733370"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Flag.html#Flag"><span class="hs-identifier hs-type">Flag</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-679"></span><span>                           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679733370"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-680"></span><span>                           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span></span><span>
</span><span id="line-681"></span><span>          </span><span id="local-6989586621679732664"><span class="annot"><span class="annottext">readHookWithArgs :: forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732664"><span class="hs-identifier hs-var hs-var">readHookWithArgs</span></a></span></span><span> </span><span id="local-6989586621679732641"><span class="annot"><span class="annottext">a -&gt; Flag Verbosity
</span><a href="#local-6989586621679732641"><span class="hs-identifier hs-var">get_verbosity</span></a></span></span><span> </span><span id="local-6989586621679732640"><span class="annot"><span class="annottext">a -&gt; Flag String
</span><a href="#local-6989586621679732640"><span class="hs-identifier hs-var">get_dist_pref</span></a></span></span><span> </span><span class="annot"><span class="annottext">[String]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732639"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679732639"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-682"></span><span>              </span><span id="local-6989586621679732638"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732638"><span class="hs-identifier hs-var">dist_dir</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Flag String
</span><a href="#local-6989586621679732640"><span class="hs-identifier hs-var">get_dist_pref</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679732639"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-683"></span><span>              </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.html#getHookedBuildInfo"><span class="hs-identifier hs-var">getHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732637"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732638"><span class="hs-identifier hs-var">dist_dir</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#%3C%2F%3E"><span class="hs-operator hs-var">&lt;/&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;build&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-684"></span><span>            </span><span class="hs-keyword">where</span><span>
</span><span id="line-685"></span><span>              </span><span id="local-6989586621679732637"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732637"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Flag Verbosity
</span><a href="#local-6989586621679732641"><span class="hs-identifier hs-var">get_verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679732639"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-686"></span><span>
</span><span id="line-687"></span><span>          </span><span id="local-6989586621679732634"><span class="annot"><a href="#local-6989586621679732663"><span class="hs-identifier hs-type">readHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679732634"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Flag.html#Flag"><span class="hs-identifier hs-type">Flag</span></a></span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-688"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679732634"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Flag.html#Flag"><span class="hs-identifier hs-type">Flag</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-689"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679732634"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span></span><span>
</span><span id="line-690"></span><span>          </span><span id="local-6989586621679732663"><span class="annot"><span class="annottext">readHook :: forall a.
(a -&gt; Flag Verbosity)
-&gt; (a -&gt; Flag String) -&gt; [String] -&gt; a -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679732663"><span class="hs-identifier hs-var hs-var">readHook</span></a></span></span><span> </span><span id="local-6989586621679732631"><span class="annot"><span class="annottext">a -&gt; Flag Verbosity
</span><a href="#local-6989586621679732631"><span class="hs-identifier hs-var">get_verbosity</span></a></span></span><span> </span><span id="local-6989586621679732630"><span class="annot"><span class="annottext">a -&gt; Flag String
</span><a href="#local-6989586621679732630"><span class="hs-identifier hs-var">get_dist_pref</span></a></span></span><span> </span><span id="local-6989586621679732629"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732629"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621679732628"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679732628"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-691"></span><span>              </span><span class="annot"><span class="annottext">[String] -&gt; IO ()
</span><a href="Distribution.Simple.Command.html#noExtraFlags"><span class="hs-identifier hs-var">noExtraFlags</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732629"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-692"></span><span>              </span><span id="local-6989586621679732626"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732626"><span class="hs-identifier hs-var">dist_dir</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Flag String -&gt; IO String
</span><a href="Distribution.Simple.Configure.html#findDistPrefOrDefault"><span class="hs-identifier hs-var">findDistPrefOrDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Flag String
</span><a href="#local-6989586621679732630"><span class="hs-identifier hs-var">get_dist_pref</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679732628"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-693"></span><span>              </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.html#getHookedBuildInfo"><span class="hs-identifier hs-var">getHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732625"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732626"><span class="hs-identifier hs-var">dist_dir</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#%3C%2F%3E"><span class="hs-operator hs-var">&lt;/&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;build&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-694"></span><span>            </span><span class="hs-keyword">where</span><span>
</span><span id="line-695"></span><span>              </span><span id="local-6989586621679732625"><span class="annot"><span class="annottext">verbosity :: Verbosity
</span><a href="#local-6989586621679732625"><span class="hs-identifier hs-var hs-var">verbosity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Flag Verbosity
</span><a href="#local-6989586621679732631"><span class="hs-identifier hs-var">get_verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679732628"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-696"></span><span>
</span><span id="line-697"></span><span class="annot"><a href="Distribution.Simple.html#runConfigureScript"><span class="hs-identifier hs-type">runConfigureScript</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-698"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-699"></span><span id="runConfigureScript"><span class="annot"><span class="annottext">runConfigureScript :: Verbosity -&gt; Bool -&gt; ConfigFlags -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.html#runConfigureScript"><span class="hs-identifier hs-var hs-var">runConfigureScript</span></a></span></span><span> </span><span id="local-6989586621679732622"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732622"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679732621"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732621"><span class="hs-identifier hs-var">backwardsCompatHack</span></a></span></span><span> </span><span id="local-6989586621679732620"><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732620"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732619"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732619"><span class="hs-identifier hs-var">lbi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-700"></span><span>  </span><span id="local-6989586621679732618"><span class="annot"><span class="annottext">[(String, String)]
</span><a href="#local-6989586621679732618"><span class="hs-identifier hs-var">env</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">IO [(String, String)]
</span><a href="Distribution.Compat.Environment.html#getEnvironment"><span class="hs-identifier hs-var">getEnvironment</span></a></span><span>
</span><span id="line-701"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732617"><span class="annot"><span class="annottext">programDb :: ProgramDb
</span><a href="#local-6989586621679732617"><span class="hs-identifier hs-var hs-var">programDb</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; ProgramDb
</span><a href="Distribution.Types.LocalBuildInfo.html#withPrograms"><span class="hs-identifier hs-var hs-var">withPrograms</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732619"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-702"></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621679732616"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732616"><span class="hs-identifier hs-var">ccProg</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732615"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732615"><span class="hs-identifier hs-var">ccFlags</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; ProgramDb -&gt; IO (String, [String])
</span><a href="Distribution.Simple.Setup.html#configureCCompiler"><span class="hs-identifier hs-var">configureCCompiler</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732622"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732617"><span class="hs-identifier hs-var">programDb</span></a></span><span>
</span><span id="line-703"></span><span>  </span><span id="local-6989586621679732613"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732613"><span class="hs-identifier hs-var">ccProgShort</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO String
</span><a href="Distribution.Compat.GetShortPathName.html#getShortPathName"><span class="hs-identifier hs-var">getShortPathName</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732616"><span class="hs-identifier hs-var">ccProg</span></a></span><span>
</span><span id="line-704"></span><span>  </span><span class="hs-comment">-- The C compiler's compilation and linker flags (e.g.</span><span>
</span><span id="line-705"></span><span>  </span><span class="hs-comment">-- &quot;C compiler flags&quot; and &quot;Gcc Linker flags&quot; from GHC) have already</span><span>
</span><span id="line-706"></span><span>  </span><span class="hs-comment">-- been merged into ccFlags, so we set both CFLAGS and LDFLAGS</span><span>
</span><span id="line-707"></span><span>  </span><span class="hs-comment">-- to ccFlags</span><span>
</span><span id="line-708"></span><span>  </span><span class="hs-comment">-- We don't try and tell configure which ld to use, as we don't have</span><span>
</span><span id="line-709"></span><span>  </span><span class="hs-comment">-- a way to pass its flags too</span><span>
</span><span id="line-710"></span><span>  </span><span id="local-6989586621679732612"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732612"><span class="hs-identifier hs-var">configureFile</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">String -&gt; IO String
</span><a href="../../directory/src/System.Directory.html#makeAbsolute"><span class="hs-identifier hs-var">makeAbsolute</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO String) -&gt; String -&gt; IO String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-711"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; Maybe String -&gt; String
forall a. a -&gt; Maybe a -&gt; a
</span><a href="../../base/src/Data.Maybe.html#fromMaybe"><span class="hs-identifier hs-var">fromMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#takeDirectory"><span class="hs-identifier hs-var">takeDirectory</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; String) -&gt; Maybe String -&gt; Maybe String
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Maybe String
</span><a href="Distribution.Types.LocalBuildInfo.html#cabalFilePath"><span class="hs-identifier hs-var hs-var">cabalFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732619"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#%3C%2F%3E"><span class="hs-operator hs-var">&lt;/&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;configure&quot;</span></span><span>
</span><span id="line-712"></span><span>  </span><span class="hs-comment">-- autoconf is fussy about filenames, and has a set of forbidden</span><span>
</span><span id="line-713"></span><span>  </span><span class="hs-comment">-- characters that can't appear in the build directory, etc:</span><span>
</span><span id="line-714"></span><span>  </span><span class="hs-comment">-- https://www.gnu.org/software/autoconf/manual/autoconf.html#File-System-Conventions</span><span>
</span><span id="line-715"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-716"></span><span>  </span><span class="hs-comment">-- This has caused hard-to-debug failures in the past (#5368), so we</span><span>
</span><span id="line-717"></span><span>  </span><span class="hs-comment">-- detect some cases early and warn with a clear message. Windows's</span><span>
</span><span id="line-718"></span><span>  </span><span class="hs-comment">-- use of backslashes is problematic here, so we'll switch to</span><span>
</span><span id="line-719"></span><span>  </span><span class="hs-comment">-- slashes, but we do still want to fail on backslashes in POSIX</span><span>
</span><span id="line-720"></span><span>  </span><span class="hs-comment">-- paths.</span><span>
</span><span id="line-721"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-722"></span><span>  </span><span class="hs-comment">-- TODO: We don't check for colons, tildes or leading dashes. We</span><span>
</span><span id="line-723"></span><span>  </span><span class="hs-comment">-- also should check the builddir's path, destdir, and all other</span><span>
</span><span id="line-724"></span><span>  </span><span class="hs-comment">-- paths as well.</span><span>
</span><span id="line-725"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732611"><span class="annot"><span class="annottext">configureFile' :: String
</span><a href="#local-6989586621679732611"><span class="hs-identifier hs-var hs-var">configureFile'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="Distribution.Simple.html#toUnix"><span class="hs-identifier hs-var">toUnix</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732612"><span class="hs-identifier hs-var">configureFile</span></a></span><span>
</span><span id="line-726"></span><span>  </span><span class="annot"><span class="annottext">[(Char, String)] -&gt; ((Char, String) -&gt; IO ()) -&gt; IO ()
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Foldable t, Applicative f) =&gt;
t a -&gt; (a -&gt; f b) -&gt; f ()
</span><a href="../../base/src/Data.Foldable.html#for_"><span class="hs-identifier hs-var">for_</span></a></span><span> </span><span class="annot"><span class="annottext">[(Char, String)]
</span><a href="Distribution.Simple.html#badAutoconfCharacters"><span class="hs-identifier hs-var">badAutoconfCharacters</span></a></span><span> </span><span class="annot"><span class="annottext">(((Char, String) -&gt; IO ()) -&gt; IO ())
-&gt; ((Char, String) -&gt; IO ()) -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679732607"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679732607"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732606"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732606"><span class="hs-identifier hs-var">cname</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-727"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; IO () -&gt; IO ()
forall (f :: * -&gt; *). Applicative f =&gt; Bool -&gt; f () -&gt; f ()
</span><a href="../../base/src/GHC.Base.html#when"><span class="hs-identifier hs-var">when</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679732607"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; String -&gt; Bool
forall (t :: * -&gt; *) a. (Foldable t, Eq a) =&gt; a -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#elem"><span class="hs-operator hs-var">`elem`</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#dropDrive"><span class="hs-identifier hs-var">dropDrive</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732611"><span class="hs-identifier hs-var">configureFile'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IO () -&gt; IO ()) -&gt; IO () -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-728"></span><span>      </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#warn"><span class="hs-identifier hs-var">warn</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732622"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span>
</span><span id="line-729"></span><span>        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;The path to the './configure' script, '&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732611"><span class="hs-identifier hs-var">configureFile'</span></a></span><span>
</span><span id="line-730"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;', contains the character '&quot;</span></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679732607"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;' (&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732606"><span class="hs-identifier hs-var">cname</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;).&quot;</span></span><span>
</span><span id="line-731"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; This may cause the script to fail with an obscure error, or for&quot;</span></span><span>
</span><span id="line-732"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; building the package to fail later.&quot;</span></span><span>
</span><span id="line-733"></span><span>        </span><span class="hs-special">]</span><span>
</span><span id="line-734"></span><span>
</span><span id="line-735"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732602"><span class="annot"><span class="annottext">extraPath :: [String]
</span><a href="#local-6989586621679732602"><span class="hs-identifier hs-var hs-var">extraPath</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NubList String -&gt; [String]
forall a. NubList a -&gt; [a]
</span><a href="Distribution.Utils.NubList.html#fromNubList"><span class="hs-identifier hs-var hs-var">fromNubList</span></a></span><span> </span><span class="annot"><span class="annottext">(NubList String -&gt; [String]) -&gt; NubList String -&gt; [String]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags -&gt; NubList String
</span><a href="Distribution.Simple.Setup.html#configProgramPathExtra"><span class="hs-identifier hs-var hs-var">configProgramPathExtra</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732620"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-736"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732597"><span class="annot"><span class="annottext">cflagsEnv :: String
</span><a href="#local-6989586621679732597"><span class="hs-identifier hs-var hs-var">cflagsEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; (String -&gt; String) -&gt; Maybe String -&gt; String
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[String] -&gt; String
</span><a href="../../base/src/Data.OldList.html#unwords"><span class="hs-identifier hs-var">unwords</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732615"><span class="hs-identifier hs-var">ccFlags</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
</span><a href="../../base/src/Data.OldList.html#unwords"><span class="hs-identifier hs-var">unwords</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732615"><span class="hs-identifier hs-var">ccFlags</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-737"></span><span>                  </span><span class="annot"><span class="annottext">(Maybe String -&gt; String) -&gt; Maybe String -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [(String, String)] -&gt; Maybe String
forall a b. Eq a =&gt; a -&gt; [(a, b)] -&gt; Maybe b
</span><a href="../../base/src/GHC.List.html#lookup"><span class="hs-identifier hs-var">lookup</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CFLAGS&quot;</span></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
</span><a href="#local-6989586621679732618"><span class="hs-identifier hs-var">env</span></a></span><span>
</span><span id="line-738"></span><span>      </span><span id="local-6989586621679732593"><span class="annot"><span class="annottext">spSep :: String
</span><a href="#local-6989586621679732593"><span class="hs-identifier hs-var hs-var">spSep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><a href="../../filepath/src/System.FilePath.Windows.html#searchPathSeparator"><span class="hs-identifier hs-var">searchPathSeparator</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-739"></span><span>      </span><span id="local-6989586621679732590"><span class="annot"><span class="annottext">pathEnv :: String
</span><a href="#local-6989586621679732590"><span class="hs-identifier hs-var hs-var">pathEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; (String -&gt; String) -&gt; Maybe String -&gt; String
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732593"><span class="hs-identifier hs-var">spSep</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732602"><span class="hs-identifier hs-var">extraPath</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-740"></span><span>                </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732593"><span class="hs-identifier hs-var">spSep</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732602"><span class="hs-identifier hs-var">extraPath</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732593"><span class="hs-identifier hs-var">spSep</span></a></span><span class="hs-special">)</span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Maybe String -&gt; String) -&gt; Maybe String -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [(String, String)] -&gt; Maybe String
forall a b. Eq a =&gt; a -&gt; [(a, b)] -&gt; Maybe b
</span><a href="../../base/src/GHC.List.html#lookup"><span class="hs-identifier hs-var">lookup</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;PATH&quot;</span></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
</span><a href="#local-6989586621679732618"><span class="hs-identifier hs-var">env</span></a></span><span>
</span><span id="line-741"></span><span>      </span><span id="local-6989586621679732588"><span class="annot"><span class="annottext">overEnv :: [(String, Maybe String)]
</span><a href="#local-6989586621679732588"><span class="hs-identifier hs-var hs-var">overEnv</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CFLAGS&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Maybe String
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732597"><span class="hs-identifier hs-var">cflagsEnv</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(String, Maybe String)
-&gt; [(String, Maybe String)] -&gt; [(String, Maybe String)]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span>
</span><span id="line-742"></span><span>                </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;PATH&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Maybe String
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732590"><span class="hs-identifier hs-var">pathEnv</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[String] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732602"><span class="hs-identifier hs-var">extraPath</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-743"></span><span>      </span><span id="local-6989586621679732585"><span class="annot"><span class="annottext">hp :: Platform
</span><a href="#local-6989586621679732585"><span class="hs-identifier hs-var hs-var">hp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; Platform
</span><a href="Distribution.Types.LocalBuildInfo.html#hostPlatform"><span class="hs-identifier hs-var hs-var">hostPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732619"><span class="hs-identifier hs-var">lbi</span></a></span><span>
</span><span id="line-744"></span><span>      </span><span id="local-6989586621679732577"><span class="annot"><span class="annottext">maybeHostFlag :: [String]
</span><a href="#local-6989586621679732577"><span class="hs-identifier hs-var hs-var">maybeHostFlag</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621679732585"><span class="hs-identifier hs-var">hp</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Platform -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="Distribution.System.html#buildPlatform"><span class="hs-identifier hs-var">buildPlatform</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-keyword">else</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;--host=&quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621679732585"><span class="hs-identifier hs-var">hp</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-745"></span><span>      </span><span id="local-6989586621679732574"><span class="annot"><span class="annottext">args' :: [String]
</span><a href="#local-6989586621679732574"><span class="hs-identifier hs-var hs-var">args'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732611"><span class="hs-identifier hs-var">configureFile'</span></a></span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; [String]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732573"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; [String] -&gt; [String]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CC=&quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732613"><span class="hs-identifier hs-var">ccProgShort</span></a></span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; [String] -&gt; [String]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732577"><span class="hs-identifier hs-var">maybeHostFlag</span></a></span><span>
</span><span id="line-746"></span><span>      </span><span id="local-6989586621679732572"><span class="annot"><span class="annottext">shProg :: Program
</span><a href="#local-6989586621679732572"><span class="hs-identifier hs-var hs-var">shProg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Program
</span><a href="Distribution.Simple.Program.Types.html#simpleProgram"><span class="hs-identifier hs-var">simpleProgram</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sh&quot;</span></span><span>
</span><span id="line-747"></span><span>      </span><span id="local-6989586621679732570"><span class="annot"><span class="annottext">progDb :: ProgramDb
</span><a href="#local-6989586621679732570"><span class="hs-identifier hs-var hs-var">progDb</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ProgramSearchPath -&gt; ProgramSearchPath) -&gt; ProgramDb -&gt; ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#modifyProgramSearchPath"><span class="hs-identifier hs-var">modifyProgramSearchPath</span></a></span><span>
</span><span id="line-748"></span><span>               </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679732568"><span class="annot"><span class="annottext">ProgramSearchPath
</span><a href="#local-6989586621679732568"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(String -&gt; ProgramSearchPathEntry) -&gt; [String] -&gt; ProgramSearchPath
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ProgramSearchPathEntry
</span><a href="Distribution.Simple.Program.Find.html#ProgramSearchPathDir"><span class="hs-identifier hs-var">ProgramSearchPathDir</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732602"><span class="hs-identifier hs-var">extraPath</span></a></span><span> </span><span class="annot"><span class="annottext">ProgramSearchPath -&gt; ProgramSearchPath -&gt; ProgramSearchPath
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">ProgramSearchPath
</span><a href="#local-6989586621679732568"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#emptyProgramDb"><span class="hs-identifier hs-var">emptyProgramDb</span></a></span><span>
</span><span id="line-749"></span><span>  </span><span id="local-6989586621679732565"><span class="annot"><span class="annottext">Maybe ConfiguredProgram
</span><a href="#local-6989586621679732565"><span class="hs-identifier hs-var">shConfiguredProg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Program -&gt; ProgramDb -&gt; Maybe ConfiguredProgram
</span><a href="Distribution.Simple.Program.Db.html#lookupProgram"><span class="hs-identifier hs-var">lookupProgram</span></a></span><span> </span><span class="annot"><span class="annottext">Program
</span><a href="#local-6989586621679732572"><span class="hs-identifier hs-var">shProg</span></a></span><span>
</span><span id="line-750"></span><span>                      </span><span class="annot"><span class="annottext">(ProgramDb -&gt; Maybe ConfiguredProgram)
-&gt; IO ProgramDb -&gt; IO (Maybe ConfiguredProgram)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-operator hs-var">`fmap`</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; Program -&gt; ProgramDb -&gt; IO ProgramDb
</span><a href="Distribution.Simple.Program.Db.html#configureProgram"><span class="hs-identifier hs-var">configureProgram</span></a></span><span>  </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732622"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">Program
</span><a href="#local-6989586621679732572"><span class="hs-identifier hs-var">shProg</span></a></span><span> </span><span class="annot"><span class="annottext">ProgramDb
</span><a href="#local-6989586621679732570"><span class="hs-identifier hs-var">progDb</span></a></span><span>
</span><span id="line-751"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe ConfiguredProgram
</span><a href="#local-6989586621679732565"><span class="hs-identifier hs-var">shConfiguredProg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-752"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679732562"><span class="annot"><span class="annottext">ConfiguredProgram
</span><a href="#local-6989586621679732562"><span class="hs-identifier hs-var">sh</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; ProgramInvocation -&gt; IO ()
</span><a href="Distribution.Simple.Program.Run.html#runProgramInvocation"><span class="hs-identifier hs-var">runProgramInvocation</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732622"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">(ProgramInvocation -&gt; IO ()) -&gt; ProgramInvocation -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-753"></span><span>                 </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfiguredProgram -&gt; [String] -&gt; ProgramInvocation
</span><a href="Distribution.Simple.Program.Run.html#programInvocation"><span class="hs-identifier hs-var">programInvocation</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ConfiguredProgram
</span><a href="#local-6989586621679732562"><span class="hs-identifier hs-var">sh</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">programOverrideEnv :: [(String, Maybe String)]
</span><a href="Distribution.Simple.Program.Types.html#programOverrideEnv"><span class="hs-identifier hs-var">programOverrideEnv</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(String, Maybe String)]
</span><a href="#local-6989586621679732588"><span class="hs-identifier hs-var">overEnv</span></a></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732574"><span class="hs-identifier hs-var">args'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-754"></span><span>                 </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">progInvokeCwd :: Maybe String
</span><a href="Distribution.Simple.Program.Run.html#progInvokeCwd"><span class="hs-identifier hs-var">progInvokeCwd</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Maybe String
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; String
</span><a href="Distribution.Types.LocalBuildInfo.html#buildDir"><span class="hs-identifier hs-var hs-var">buildDir</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732619"><span class="hs-identifier hs-var">lbi</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-755"></span><span>      </span><span class="annot"><span class="annottext">Maybe ConfiguredProgram
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
forall a. Verbosity -&gt; String -&gt; IO a
</span><a href="Distribution.Simple.Utils.html#die%27"><span class="hs-identifier hs-var">die'</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732622"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732557"><span class="hs-identifier hs-var">notFoundMsg</span></a></span><span>
</span><span id="line-756"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-757"></span><span>    </span><span id="local-6989586621679732573"><span class="annot"><span class="annottext">args :: [String]
</span><a href="#local-6989586621679732573"><span class="hs-identifier hs-var hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; ConfigFlags -&gt; [String]
</span><a href="Distribution.Simple.Setup.html#configureArgs"><span class="hs-identifier hs-var">configureArgs</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621679732621"><span class="hs-identifier hs-var">backwardsCompatHack</span></a></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><a href="#local-6989586621679732620"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-758"></span><span>
</span><span id="line-759"></span><span>    </span><span id="local-6989586621679732557"><span class="annot"><span class="annottext">notFoundMsg :: String
</span><a href="#local-6989586621679732557"><span class="hs-identifier hs-var hs-var">notFoundMsg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;The package has a './configure' script. &quot;</span></span><span>
</span><span id="line-760"></span><span>               </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;If you are on Windows, This requires a &quot;</span></span><span>
</span><span id="line-761"></span><span>               </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unix compatibility toolchain such as MinGW+MSYS or Cygwin. &quot;</span></span><span>
</span><span id="line-762"></span><span>               </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;If you are not on Windows, ensure that an 'sh' command &quot;</span></span><span>
</span><span id="line-763"></span><span>               </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;is discoverable in your path.&quot;</span></span><span>
</span><span id="line-764"></span><span>
</span><span id="line-765"></span><span class="hs-comment">-- | Convert Windows path to Unix ones</span><span>
</span><span id="line-766"></span><span class="annot"><a href="Distribution.Simple.html#toUnix"><span class="hs-identifier hs-type">toUnix</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-cpp">
#ifdef mingw32_HOST_OS
</span><span id="toUnix"><span class="annot"><span class="annottext">toUnix :: String -&gt; String
</span><a href="Distribution.Simple.html#toUnix"><span class="hs-identifier hs-var hs-var">toUnix</span></a></span></span><span> </span><span id="local-6989586621679732555"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732555"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732554"><span class="annot"><span class="annottext">tmp :: String
</span><a href="#local-6989586621679732554"><span class="hs-identifier hs-var hs-var">tmp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; String
</span><a href="../../filepath/src/System.FilePath.Windows.html#normalise"><span class="hs-identifier hs-var">normalise</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732555"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-769"></span><span>               </span><span class="hs-special">(</span><span id="local-6989586621679732553"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732553"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732552"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732552"><span class="hs-identifier hs-var">rest</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">String -&gt; (String, String)
</span><a href="../../filepath/src/System.FilePath.Windows.html#splitDrive"><span class="hs-identifier hs-var">splitDrive</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732554"><span class="hs-identifier hs-var">tmp</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-770"></span><span>                             </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>  </span><span id="local-6989586621679732551"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732551"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;/&quot;</span></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732551"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-771"></span><span>                             </span><span class="hs-special">(</span><span id="local-6989586621679732550"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679732550"><span class="hs-identifier hs-var">h</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679732549"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732549"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'/'</span></span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679732550"><span class="hs-identifier hs-var">h</span></a></span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;/&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732549"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-772"></span><span>               </span><span id="local-6989586621679732548"><span class="annot"><span class="annottext">parts :: [String]
</span><a href="#local-6989586621679732548"><span class="hs-identifier hs-var hs-var">parts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; [String]
</span><a href="../../filepath/src/System.FilePath.Windows.html#splitDirectories"><span class="hs-identifier hs-var">splitDirectories</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732552"><span class="hs-identifier hs-var">rest</span></a></span><span>
</span><span id="line-773"></span><span>           </span><span class="hs-keyword">in</span><span>  </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732553"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;/&quot;</span></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732548"><span class="hs-identifier hs-var">parts</span></a></span><span class="hs-cpp">
#else
</span><span class="hs-identifier">toUnix</span><span> </span><span class="hs-identifier">s</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">intercalate</span><span> </span><span class="hs-string">&quot;/&quot;</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-identifier">splitDirectories</span><span> </span><span class="hs-identifier">s</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-778"></span><span class="annot"><a href="Distribution.Simple.html#badAutoconfCharacters"><span class="hs-identifier hs-type">badAutoconfCharacters</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-779"></span><span id="badAutoconfCharacters"><span class="annot"><span class="annottext">badAutoconfCharacters :: [(Char, String)]
</span><a href="Distribution.Simple.html#badAutoconfCharacters"><span class="hs-identifier hs-var hs-var">badAutoconfCharacters</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-780"></span><span>  </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">' '</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;space&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-781"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;tab&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-782"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;newline&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-783"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\0'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;null&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-784"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&quot;'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;double quote&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-785"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;hash&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-786"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'$'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;dollar sign&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-787"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&amp;'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ampersand&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-788"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\''</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;single quote&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-789"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'('</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;left bracket&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-790"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;right bracket&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-791"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'*'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;star&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-792"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">';'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;semicolon&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-793"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&lt;'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;less-than sign&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-794"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'='</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;equals sign&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-795"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;greater-than sign&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-796"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;question mark&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-797"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'['</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;left square bracket&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-798"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;backslash&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-799"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'`'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;backtick&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-800"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'|'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pipe&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-801"></span><span>  </span><span class="hs-special">]</span><span>
</span><span id="line-802"></span><span>
</span><span id="line-803"></span><span class="annot"><a href="Distribution.Simple.html#getHookedBuildInfo"><span class="hs-identifier hs-type">getHookedBuildInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Verbosity.html#Verbosity"><span class="hs-identifier hs-type">Verbosity</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span>
</span><span id="line-804"></span><span id="getHookedBuildInfo"><span class="annot"><span class="annottext">getHookedBuildInfo :: Verbosity -&gt; String -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.html#getHookedBuildInfo"><span class="hs-identifier hs-var hs-var">getHookedBuildInfo</span></a></span></span><span> </span><span id="local-6989586621679732547"><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732547"><span class="hs-identifier hs-var">verbosity</span></a></span></span><span> </span><span id="local-6989586621679732546"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732546"><span class="hs-identifier hs-var">build_dir</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-805"></span><span>  </span><span id="local-6989586621679732545"><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679732545"><span class="hs-identifier hs-var">maybe_infoFile</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO (Maybe String)
</span><a href="Distribution.Simple.Utils.html#findHookedPackageDesc"><span class="hs-identifier hs-var">findHookedPackageDesc</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732547"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732546"><span class="hs-identifier hs-var">build_dir</span></a></span><span>
</span><span id="line-806"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe String
</span><a href="#local-6989586621679732545"><span class="hs-identifier hs-var">maybe_infoFile</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-807"></span><span>    </span><span class="annot"><span class="annottext">Maybe String
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; IO HookedBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="Distribution.Types.HookedBuildInfo.html#emptyHookedBuildInfo"><span class="hs-identifier hs-var">emptyHookedBuildInfo</span></a></span><span>
</span><span id="line-808"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679732542"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732542"><span class="hs-identifier hs-var">infoFile</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-809"></span><span>      </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#info"><span class="hs-identifier hs-var">info</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732547"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Reading parameters from &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732542"><span class="hs-identifier hs-var">infoFile</span></a></span><span>
</span><span id="line-810"></span><span>      </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; IO HookedBuildInfo
</span><a href="Distribution.PackageDescription.Parsec.html#readHookedBuildInfo"><span class="hs-identifier hs-var">readHookedBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Verbosity
</span><a href="#local-6989586621679732547"><span class="hs-identifier hs-var">verbosity</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679732542"><span class="hs-identifier hs-var">infoFile</span></a></span><span>
</span><span id="line-811"></span><span>
</span><span id="line-812"></span><span class="annot"><a href="Distribution.Simple.html#defaultTestHook"><span class="hs-identifier hs-type">defaultTestHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-813"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#TestFlags"><span class="hs-identifier hs-type">TestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-814"></span><span id="defaultTestHook"><span class="annot"><span class="annottext">defaultTestHook :: [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.html#defaultTestHook"><span class="hs-identifier hs-var hs-var">defaultTestHook</span></a></span></span><span> </span><span id="local-6989586621679732540"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732540"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621679732539"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732539"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732538"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732538"><span class="hs-identifier hs-var">localbuildinfo</span></a></span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732537"><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732537"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-815"></span><span>    </span><span class="annot"><span class="annottext">[String]
-&gt; PackageDescription -&gt; LocalBuildInfo -&gt; TestFlags -&gt; IO ()
</span><a href="Distribution.Simple.Test.html#test"><span class="hs-identifier hs-var">test</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732540"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732539"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732538"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">TestFlags
</span><a href="#local-6989586621679732537"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-816"></span><span>
</span><span id="line-817"></span><span class="annot"><a href="Distribution.Simple.html#defaultBenchHook"><span class="hs-identifier hs-type">defaultBenchHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-818"></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BenchmarkFlags"><span class="hs-identifier hs-type">BenchmarkFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-819"></span><span id="defaultBenchHook"><span class="annot"><span class="annottext">defaultBenchHook :: [String]
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; IO ()
</span><a href="Distribution.Simple.html#defaultBenchHook"><span class="hs-identifier hs-var hs-var">defaultBenchHook</span></a></span></span><span> </span><span id="local-6989586621679732535"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732535"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621679732534"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732534"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732533"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732533"><span class="hs-identifier hs-var">localbuildinfo</span></a></span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732532"><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732532"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-820"></span><span>    </span><span class="annot"><span class="annottext">[String]
-&gt; PackageDescription -&gt; LocalBuildInfo -&gt; BenchmarkFlags -&gt; IO ()
</span><a href="Distribution.Simple.Bench.html#bench"><span class="hs-identifier hs-var">bench</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732535"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732534"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732533"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">BenchmarkFlags
</span><a href="#local-6989586621679732532"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-821"></span><span>
</span><span id="line-822"></span><span class="annot"><a href="Distribution.Simple.html#defaultInstallHook"><span class="hs-identifier hs-type">defaultInstallHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-823"></span><span>                   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#InstallFlags"><span class="hs-identifier hs-type">InstallFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-824"></span><span id="defaultInstallHook"><span class="annot"><span class="annottext">defaultInstallHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; InstallFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultInstallHook"><span class="hs-identifier hs-var hs-var">defaultInstallHook</span></a></span></span><span> </span><span id="local-6989586621679732530"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732530"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732529"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732529"><span class="hs-identifier hs-var">localbuildinfo</span></a></span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732528"><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-825"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732527"><span class="annot"><span class="annottext">copyFlags :: CopyFlags
</span><a href="#local-6989586621679732527"><span class="hs-identifier hs-var hs-var">copyFlags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="Distribution.Simple.Setup.html#defaultCopyFlags"><span class="hs-identifier hs-var">defaultCopyFlags</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-826"></span><span>                      </span><span class="annot"><span class="annottext">copyDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#copyDistPref"><span class="hs-identifier hs-var">copyDistPref</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#installDistPref"><span class="hs-identifier hs-var hs-var">installDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-827"></span><span>                      </span><span class="annot"><span class="annottext">copyDest :: Flag CopyDest
</span><a href="Distribution.Simple.Setup.html#copyDest"><span class="hs-identifier hs-var">copyDest</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag CopyDest
</span><a href="Distribution.Simple.Setup.html#installDest"><span class="hs-identifier hs-var hs-var">installDest</span></a></span><span>     </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-828"></span><span>                      </span><span class="annot"><span class="annottext">copyVerbosity :: Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#copyVerbosity"><span class="hs-identifier hs-var">copyVerbosity</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#installVerbosity"><span class="hs-identifier hs-var hs-var">installVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-829"></span><span>                  </span><span class="hs-special">}</span><span>
</span><span id="line-830"></span><span>  </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; CopyFlags -&gt; IO ()
</span><a href="Distribution.Simple.Install.html#install"><span class="hs-identifier hs-var">install</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732530"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732529"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">CopyFlags
</span><a href="#local-6989586621679732527"><span class="hs-identifier hs-var">copyFlags</span></a></span><span>
</span><span id="line-831"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679732523"><span class="annot"><span class="annottext">registerFlags :: RegisterFlags
</span><a href="#local-6989586621679732523"><span class="hs-identifier hs-var hs-var">registerFlags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="Distribution.Simple.Setup.html#defaultRegisterFlags"><span class="hs-identifier hs-var">defaultRegisterFlags</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-832"></span><span>                          </span><span class="annot"><span class="annottext">regDistPref :: Flag String
</span><a href="Distribution.Simple.Setup.html#regDistPref"><span class="hs-identifier hs-var">regDistPref</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag String
</span><a href="Distribution.Simple.Setup.html#installDistPref"><span class="hs-identifier hs-var hs-var">installDistPref</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-833"></span><span>                          </span><span class="annot"><span class="annottext">regInPlace :: Flag Bool
</span><a href="Distribution.Simple.Setup.html#regInPlace"><span class="hs-identifier hs-var">regInPlace</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag Bool
</span><a href="Distribution.Simple.Setup.html#installInPlace"><span class="hs-identifier hs-var hs-var">installInPlace</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-834"></span><span>                          </span><span class="annot"><span class="annottext">regPackageDB :: Flag PackageDB
</span><a href="Distribution.Simple.Setup.html#regPackageDB"><span class="hs-identifier hs-var">regPackageDB</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag PackageDB
</span><a href="Distribution.Simple.Setup.html#installPackageDB"><span class="hs-identifier hs-var hs-var">installPackageDB</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-835"></span><span>                          </span><span class="annot"><span class="annottext">regVerbosity :: Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#regVerbosity"><span class="hs-identifier hs-var">regVerbosity</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstallFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#installVerbosity"><span class="hs-identifier hs-var hs-var">installVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">InstallFlags
</span><a href="#local-6989586621679732528"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-836"></span><span>                      </span><span class="hs-special">}</span><span>
</span><span id="line-837"></span><span>  </span><span class="annot"><span class="annottext">Bool -&gt; IO () -&gt; IO ()
forall (f :: * -&gt; *). Applicative f =&gt; Bool -&gt; f () -&gt; f ()
</span><a href="../../base/src/GHC.Base.html#when"><span class="hs-identifier hs-var">when</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasLibs"><span class="hs-identifier hs-var">hasLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732530"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(IO () -&gt; IO ()) -&gt; IO () -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.Register.html#register"><span class="hs-identifier hs-var">register</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732530"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732529"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732523"><span class="hs-identifier hs-var">registerFlags</span></a></span><span>
</span><span id="line-838"></span><span>
</span><span id="line-839"></span><span class="annot"><a href="Distribution.Simple.html#defaultBuildHook"><span class="hs-identifier hs-type">defaultBuildHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-840"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BuildFlags"><span class="hs-identifier hs-type">BuildFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-841"></span><span id="defaultBuildHook"><span class="annot"><span class="annottext">defaultBuildHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; BuildFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultBuildHook"><span class="hs-identifier hs-var hs-var">defaultBuildHook</span></a></span></span><span> </span><span id="local-6989586621679732515"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732515"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732514"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732514"><span class="hs-identifier hs-var">localbuildinfo</span></a></span></span><span> </span><span id="local-6989586621679732513"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732513"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732512"><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679732512"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-842"></span><span>  </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; BuildFlags -&gt; [PPSuffixHandler] -&gt; IO ()
</span><a href="Distribution.Simple.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732515"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732514"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">BuildFlags
</span><a href="#local-6989586621679732512"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-var">allSuffixHandlers</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732513"><span class="hs-identifier hs-var">hooks</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-843"></span><span>
</span><span id="line-844"></span><span class="annot"><a href="Distribution.Simple.html#defaultReplHook"><span class="hs-identifier hs-type">defaultReplHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-845"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ReplFlags"><span class="hs-identifier hs-type">ReplFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-846"></span><span id="defaultReplHook"><span class="annot"><span class="annottext">defaultReplHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; ReplFlags -&gt; [String] -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultReplHook"><span class="hs-identifier hs-var hs-var">defaultReplHook</span></a></span></span><span> </span><span id="local-6989586621679732510"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732510"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732509"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732509"><span class="hs-identifier hs-var">localbuildinfo</span></a></span></span><span> </span><span id="local-6989586621679732508"><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732508"><span class="hs-identifier hs-var">hooks</span></a></span></span><span> </span><span id="local-6989586621679732507"><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732507"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span id="local-6989586621679732506"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732506"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-847"></span><span>  </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo
-&gt; ReplFlags
-&gt; [PPSuffixHandler]
-&gt; [String]
-&gt; IO ()
</span><a href="Distribution.Simple.Build.html#repl"><span class="hs-identifier hs-var">repl</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732510"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732509"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><a href="#local-6989586621679732507"><span class="hs-identifier hs-var">flags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.html#allSuffixHandlers"><span class="hs-identifier hs-var">allSuffixHandlers</span></a></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><a href="#local-6989586621679732508"><span class="hs-identifier hs-var">hooks</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621679732506"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-848"></span><span>
</span><span id="line-849"></span><span class="annot"><a href="Distribution.Simple.html#defaultRegHook"><span class="hs-identifier hs-type">defaultRegHook</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span>
</span><span id="line-850"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-851"></span><span id="defaultRegHook"><span class="annot"><span class="annottext">defaultRegHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.html#defaultRegHook"><span class="hs-identifier hs-var hs-var">defaultRegHook</span></a></span></span><span> </span><span id="local-6989586621679732504"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732504"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679732503"><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732503"><span class="hs-identifier hs-var">localbuildinfo</span></a></span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679732502"><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732502"><span class="hs-identifier hs-var">flags</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-852"></span><span>    </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasLibs"><span class="hs-identifier hs-var">hasLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732504"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-853"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; LocalBuildInfo -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.Register.html#register"><span class="hs-identifier hs-var">register</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732504"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><a href="#local-6989586621679732503"><span class="hs-identifier hs-var">localbuildinfo</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732502"><span class="hs-identifier hs-var">flags</span></a></span><span>
</span><span id="line-854"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Verbosity -&gt; String -&gt; PackageIdentifier -&gt; IO ()
</span><a href="Distribution.Simple.Utils.html#setupMessage"><span class="hs-identifier hs-var">setupMessage</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Flag Verbosity -&gt; Verbosity
forall a. WithCallStack (Flag a -&gt; a)
</span><a href="Distribution.Simple.Flag.html#fromFlag"><span class="hs-identifier hs-var">fromFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RegisterFlags -&gt; Flag Verbosity
</span><a href="Distribution.Simple.Setup.html#regVerbosity"><span class="hs-identifier hs-var hs-var">regVerbosity</span></a></span><span> </span><span class="annot"><span class="annottext">RegisterFlags
</span><a href="#local-6989586621679732502"><span class="hs-identifier hs-var">flags</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-855"></span><span>           </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Package contains no library to register:&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; PackageIdentifier
forall pkg. Package pkg =&gt; pkg -&gt; PackageIdentifier
</span><a href="Distribution.Package.html#packageId"><span class="hs-identifier hs-var">packageId</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679732504"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-856"></span></pre></body></html>